Configuration du composant d'analyse syntaxique pour un programme d'analyse syntaxique fondé sur des règles

Le programme d'analyse syntaxique reçoit les messages délimités par l'extracteur et génère un ensemble de mappages de valeurs de chaîne vers les attributs CBE.

Conditions requises :

Pour configurer le composant d'analyse syntaxique, vous devez configurer des règles pour les deux niveaux d'exécution du programme d'analyse syntaxique :

Traitement global

Le traitement global dans le composant d'analyse syntaxique prend un ensemble de règles d'expressions régulières globales et applique ces règles aux résultats de message fournis par l'extracteur.

Pour configurer les règles de traitement globales pour le composant d'analyse syntaxique, procédez comme suit :

  1. Dans le panneau de gauche de l'éditeur de configuration d'adaptateur, sélectionnez Configuration > Instance de contexte > Analyseur. Le panneau de droite affiche les informations sur le programme d'analyse syntaxique.

    Détails de la configuration du programme d'analyse syntaxique dans le panneau de droite

  2. Entrez la description du programme d'analyse syntaxique dans la zone Description.
  3. Si le journal comporte des sèmes de séparateur qui délimitent les éléments au sein d'un enregistrement, indiquez le sème concerné dans la zone Sème de séparateur. Par exemple, dans le cas de l'enregistrement de journal de l'application myapp, le sème de séparateur entre les éléments est un espace double :
    <March 14, 2004 10:25:21 EST>  application:myapp  severity:3  message:WARNING-file style.css missing
    Il est possible de spécifier le sème de séparateur avec l'expression régulière [ ]{2}.
  4. Si le journal contient des éléments dans un schéma paire nom-valeur, vous pouvez spécifier le sème qui associe le nom à la valeur dans la zone Sème de désignation. Dans le même exemple indiqué plus haut, dans l'enregistrement de journal myapp, le sème de désignation est un signe deux-points :.

Remarque : les blancs devant et derrière les valeurs analysées seront supprimés au cours du traitement global. C'est pourquoi les règles de substitution qui utilisent des valeurs de position peuvent être écrites en assumant que les valeurs ne sont plus précédées ni suivies de blancs.

Traitement des attributs

La seconde phase d'exécution du programme d'analyse syntaxique s'applique aux règles de substitution spécifiques permettant d'identifier les valeurs à affecter aux attributs CBE.

Les attributs CBE suivants sont obligatoires :

Pour la liste complète des éléments Common Base Events et des attributs associés, voir Modèle Common Base Event.

Ajout et configuration d'éléments et d'attributs

Pour ajouter et configurer un élément :

  1. Dans le panneau de gauche de l'éditeur de configuration d'adaptateur, sélectionnez Configuration > Instance de contexte > Analyseur > Common Base Event. Le panneau de droite affiche les informations CBE.
  2. Pour ajouter un élément, cliquez à l'aide du bouton droit de la souris sur le noeud Common Base Event et sélectionnez l'élément à ajouter dans le menu en incrustation. L'élément est créé sous le noeud Common Base Event.
    Dans l'exemple ci-après, l'élément situation est ajouté.

    L'attribut situation est affiché dans la sous-fenêtre de droite

  3. Pour configurer l'élément que vous venez d'ajouter, cliquez sur ce dernier. Les propriétés de l'élément s'affichent dans la sous-fenêtre de droite.
  4. La case à cocher Requis par le parent permet de spécifier si cet élément doit avoir une valeur valide pour que l'élément parent soit valide. Dans l'exemple ci-avant, si la case à cocher est sélectionnée pour l'élément situation, cela indique à l'analyseur syntaxique que l'objet Common Base Event doit avoir un élément situation valide. Au cours du traitement, si l'élément situation renvoie une valeur nulle, l'analyseur syntaxique ne traitera aucun autre élément enfant de l'objet Common Base Event car il sait déjà que cet objet Common Base Event est non valide parce qu'un élément enfant obligatoire a renvoyé une valeur non valide.
  5. La case à cocher Choix de l'enfant permet de spécifier s'il faut arrêter le traitement de cet élément une fois qu'un attribut ou élément d'enfant valide renvoie une valeur valide. Par exemple, observez l'élément situation ci-avant : il compte trois éléments enfants disposant tous de leur propre sous-arborescence. Si l'option Choix de l'enfant est sélectionnée pour l'élément situation, l'analyse s'arrête à sa première sous-arborescence qui renvoie une valeur valide. Cette fonction améliore nettement les performances des éléments d'analyse syntaxique qui ont plusieurs éléments enfants ou attributs.
    Remarque : categoryName est un attribut obligatoire de situation, mais l'adaptateur de journal générique réglera categoryName sur la valeur appropriée si un des éléments de type situation renvoie une valeur.

Pour ajouter et configurer un attribut :

  1. Dans le panneau de gauche de l'éditeur de configuration d'adaptateur, sélectionnez Configuration > Instance de contexte > Analyseur > Common Base Event. Le panneau de droite affiche les informations CBE.
  2. Pour ajouter un attribut, cliquez à l'aide du bouton droit de la souris sur le noeud Common Base Event et sélectionnez l'attribut à ajouter dans le menu en incrustation. L'attribut est créé sous le noeud Common Base Event.
    L'exemple ci-après montre l'attribut msg ajouté sous le noeud Common Base Event.

    Attribut msg affiché dans le panneau de droite

  3. Cliquez sur l'attribut pour afficher les propriétés de l'attribut dans la sous-fenêtre de droite.
  4. A l'aide de l'exemple ci-dessus, si les enregistrements du journal ne contiennent pas tous l'attribut msg, vous pouvez cocher la case Utiliser la substitution de l'occurrence précédente comme valeur par défaut. La valeur du dernier message concordant est alors affectée à l'attribut msg.
  5. Si vous souhaitez définir une valeur par défaut pour l'attribut msg, entrez la valeur voulue dans la zone Valeur par défaut. Cette valeur par défaut sera utilisée uniquement s'il n'existe aucune règle de substitution ou si aucune règle de substitution ne correspond et que la case Utiliser la substitution de l'occurrence précédente comme valeur par défaut n'est pas cochée ou si elle est cochée, mais qu'aucune valeur d'occurrence précédente n'a été sauvegardée.
  6. La case à cocher Requis par le parent pour l'attribut permet de spécifier si cet attribut doit avoir une valeur valide pour que l'élément parent soit valide.

Ajout et configuration des règles de substitution des attributs

Pour ajouter une règle de substitution à l'attribut CBE, sélectionnez Attribut > Ajouter > Règle de substitution. Les détails de la règle de substitution s'affichent dans le panneau de droite de l'éditeur.

  1. La zone Positions peut être utilisée lorsque l'enregistrement de journal contient des paires nom-valeur délimitées par un sème. Il est possible d'extraire la valeur d'une paire nom-valeur à l'aide de l'expression $h('nameofNameValuePair').
    Par exemple, si on se réfère au même enregistrement de journal de l'application myapp :
    <March 14, 2004 10:25:21 EST>  application:myapp  severity:3  message:WARNING-file style.css missing
    avec le séparateur = []{2} et la désignation token = : , l'expression d'extraction du message est $h('message').
    Pour les autres applications de la zone Positions, voir Zone Positions.
  2. La zone Occurrence spécifie un schéma à rechercher dans l'enregistrement. Si la zone Positions est spécifiée, la recherche est effectuée dans une partie de l'enregistrement. Dans le cas contraire, la recherche a lieu dans la totalité de l'enregistrement. Il est possible, dans ce schéma, de regrouper certaines données en utilisant des parenthèses dans la zone Substituer. Si le schéma correspond aux données de l'enregistrement, l'attribut CBE auquel est associée cette règle se voit attribuer une valeur reposant sur la zone Substituer. Si la zone Occurrence n'est pas renseignée, la règle est considérée comme une occurrence.
    Dans l'exemple d'enregistrement de journal myapp, vous pouvez utiliser l'expression régulière suivante pour trouver une correspondance avec la valeur du message extrait par la zone Positions :
    ^(\w+)-(.*)
    Ce schéma de concordance comporte deux groupes. Le premier groupe est un ensemble de caractères situés avant un tiret. Le second groupe concerne tout ce qui est situé après le tiret jusqu'à la fin de la valeur du message, comme indiqué par les spécifications de la zone Positions.
  3. La zone Substituer spécifie la valeur à affecter à l'attribut CBE comme résultat d'une correspondance. Il est possible d'extraire les valeurs de la chaîne concordante à l'aide de $1, $2, etc. qui représentent les groupes définis dans le schéma de correspondance.
    Dans l'exemple d'enregistrement de journal myapp, si vous souhaitez uniquement affecter la valeur de l'avertissement à l'attribut CBE, spécifiez la substitution sous la forme $2.

    Exemple d'enregistrement de journal dont la syntaxe est analysée. Affichage du résultat dans la vue Résultat du formateur

  4. La Classe d'extension de substitution peut être utilisée si vous souhaitez exécuter la logique de l'analyse syntaxique personnalisée sur la valeur correspondant aux zones Positions, Occurrence et Substituer. La classe utilisateur doit implémenter l'interface de l'adaptateur de journal générique
    org.eclipse.hyades.logging.adapter.parsers.ISubstitutionExtension 
    pour qu'elle soit exécutée par l'adaptateur de journal générique.

  5. La zone Format de l'heure peut être utilisée pour créer une règle de substitution pour l'attribut creationTime. Spécifiez une chaîne de schéma d'heure Java dans cette zone. Le schéma entré sera utilisé pour analyser la syntaxe de la valeur correspondant aux zones Positions, Occurrence et Substituer à l'aide de la classe java.text.SimpleDateFormat pour la génération de la date en tant que valeur longue. Cette valeur est sert ensuite à générer la valeur de chaîne de la date au format dateTime de schéma XML requis par Common Base Event.
    Dans l'exemple d'enregistrement de journal myapp, la règle Format de l'heure est la suivante :

    Exemple de règle de la zone Format de l'heure utilisant la classe de format de date simple Java

  6. Appliquez les modifications effectuées en sauvegardant le fichier de configuration d'adaptateur.
  7. Pour tester vos règles, cliquez sur l'icône Ré-exécuter l'adaptateur Icône Ré-exécuter l'adaptateur pour exécuter l'adaptateur. Les résultats s'affichent dans la vue Résultat du formateur. Conseil : vous pouvez spécifier le numéro de l'enregistrement à partir duquel vous souhaitez visualiser les résultats. Utilisez le menu déroulant de l'icône Réexécuter l'adaptateur et sélectionnez Commencer à l'enregistrement. Cela ouvre une boîte de dialogue dans laquelle vous pouvez spécifier le numéro de l'enregistrement auquel vous souhaitez commencer.
  8. Cliquez sur l'icône Afficher l'événement suivant Icône Afficher l'événement suivant pour visualiser les attributs CBE générés à l'aide des règles que vous avez rédigées.

Remarque : pour plus d'informations sur le format de date simple Java, voir la javadoc java.sun.com/j2se/1.4.2/docs/api/java/text/SimpleDateFormat.html.

Une fois les règles du programme d'analyse syntaxique terminées, vous pouvez configurer le composant outputter du fichier de configuration d'adaptateur.

Concepts connexes
Présentation de l'adaptateur de journal générique Hyades
Spécification du format Common Base Event

Tâches connexes
Configuration du composant outputter