Parserkomponente für regelbasierten Parser konfigurieren
Die Aufgabe des Parsers besteht darin, anhand der vom Extrahierungsprogramm begrenzten Nachrichten eine Gruppe
von Zuordnungen zwischen Zeichenfolgewerten und den Common Base Event-Attributen zu erstellen.
Voraussetzungen:
Um die Parserkomponente zu konfigurieren, müssen Sie Regeln für die beiden Phasen der Parserausführung konfigurieren:
- Globale Verarbeitung - Eine Gruppe globaler regulärer Ausdrücke wird für die vom
Extrahierungsprogramm gelieferten Nachrichtenergebnisse ausgeführt.
- Attributverarbeitung - Spezifische Gruppen von Substitutionsregeln werden
ausgeführt, um den Wert zu ermitteln, der den im Editor angegebenen Common Base Event-Attributen jeweils zugeordnet
werden soll.
Globale Verarbeitung
Die globale Verarbeitung in der Parserkomponente übernimmt eine Gruppe globaler regulärer Ausdrücke und wendet diese Regeln auf die vom Extrahierungsprogramm gelieferten Ergebnisnachrichten an.
Führen Sie die folgenden Schritte aus, um die globalen Verarbeitungsregeln für die Parserkomponente zu konfigurieren:
- Erweitern Sie im linken Teilfenster des Editors für Adapterkonfigurationen den Knoten Konfiguration > Kontextexemplar > Parser.
Die Informationen zum Parser werden dann im rechten Teilfenster angezeigt.

- Geben Sie die Beschreibung des Parsers in das Feld Beschreibung ein.
- Wenn Protokollsätze Separatortoken enthalten, die die Elemente innerhalb eines Datensatzes begrenzen, geben Sie den Token
in das Feld Separatortoken ein.
Für den Protokollsatz der Anwendung myapp beispielsweise ist der Separatortoken zwischen den Elementen ein
doppeltes Leerzeichen:
<March 14, 2004 10:25:21 EST> application:myapp severity:3 message:WARNING-file style.css missing
Der Separatortoken kann mit dem regulären Ausdruck [ ]{2} angegeben werden.
- Wenn die Protokollsätze Elemente in einem Muster mit Name/Wert-Paaren enthält, können Sie den Token, der den Namen
dem Wert zuordnet, im Feld Bestimmungstoken eingeben. In vorstehendem Beispiel ist der Bestimmungstoken
im Protokollsatz von myapp ein Doppelpunkt (:) .
Hinweis: Die im Rahmen der globalen Verarbeitungsphase syntaktisch analysierten Werte werden um einführende und abschließende Leerzeichen gekürzt. Daher können Substitutionsregeln, die Positionswerte verwenden, unter der Annahme geschrieben werden, dass die Werte keine einführenden oder abschließenden Leerzeichen haben.
Attributsverarbeitung
In der zweiten Phase der Parserausführung werden spezifische Substitutionsregeln angewendet, um zu ermitteln,
welche Werte den Common Base Event-Attributen zugeordnet werden sollen.
Die folgenden Common Base Event-Attribute sind erforderlich:
- creationTime
- situation
- sourceComponentID
Das Common Base Event-Modell enthält eine vollständige Liste der
Common Base Event-Elemente und der diesen zugeordneten Attributen.
Elemente und Attribute hinzufügen und konfigurieren
So fügen Sie ein neues Element hinzu bzw. konfigurieren es:
- Wählen Sie im linken Teilfenster des Editors für Adapterkonfiguration nacheinander die Optionen
Konfiguration > Kontextexemplar > Parser > Common Base Event aus.
Die Common Base Event-Informationen werden dann im rechten Teilfenster angezeigt.
- Um ein neues Element hinzuzufügen, klicken Sie mit der rechten Maustaste auf den Knoten 'Common Base Event' und
wählen Sie aus dem Kontextmenü das Element aus, das Sie hinzufügen wollen. Das Element wird unterhalb des
Common Base Event-Knotens erstellt.
Im nachstehenden Beispiel wird das Element Situation hinzugefügt.

- Um das zuvor hinzugefügte Element zu konfigurieren, klicken Sie das Element an. Die Eigenschaften des Elements werden dann im rechten Teilfenster angezeigt.
- Über das Markierungsfeld Von übergeordnetem Element benötigt können Sie bestimmen, ob dieses Element einen gültigen Wert haben muss, damit das übergeordnete Element gültig ist, oder nicht.
Wenn im voranstehenden Beispiel das Markierungsfeld für das Element Situation aktiviert ist, so zeigt dies dem Parser an, dass das Common Base Event-Objekt ein gültiges Element 'Situation' benötigt. Wenn das Element Situation bei der Verarbeitung einen Nullwert zurückgibt, wird der Parser keines der untergeordneten Elemente des Common Base Event-Objekts verarbeiten, da er bereits weiß, dass dieses Common Base Event-Objekt ungültig ist, da ein erforderliches untergeordnetes Element einen ungültigen Wert zurückgegeben hat.
- Über das Markierungsfeld Auswahl untergeordnetes Element können Sie bestimmen, ob die Verarbeitung dieses Elements gestoppt werden soll, sobald ein untergeordnetes Attribut oder Element einen gültigen Wert zurückgegeben hat.
Betrachten Sie beispielsweise das voranstehende Element Situation. Es verfügt über drei untergeordnete Elemente mit jeweils eigenen Unterverzeichnissen. Wenn das Markierungsfeld Auswahl untergeordnetes Element für das Element Situation aktiviert ist, endet die syntaktische Analyse mit dem ersten untergeordneten Unterverzeichnis, das einen gültigen Wert zurückgibt. Dieses Merkmal verbessert das Leistungsverhalten von Parsingelementen mit mehreren untergeordneten Elementen oder Attributen erheblich.
Hinweis:'categoryName' ist für 'Situation' ein erforderliches Attribut, aber der generische Protokolladapter stellt 'categoryName' auf einen geeigneten Wert ein, wenn eines der Elemente des Typs 'Situation' einen Wert zurückgibt.
So fügen Sie ein neues Attribut hinzu bzw. konfigurieren es:
- Wählen Sie im linken Teilfenster des Editors für Adapterkonfiguration nacheinander die Optionen
Konfiguration > Kontextexemplar > Parser > Common Base Event aus.
Die Common Base Event-Informationen werden dann im rechten Teilfenster angezeigt.
- Um ein Attribut hinzuzufügen, klicken Sie mit der rechten Maustaste auf den Knoten 'Common Base Event' und
wählen Sie aus dem Kontextmenü das Attribut aus, das Sie hinzufügen wollen. Das Attribut wird unterhalb des
Common Base Event-Knotens erstellt.
Das untenstehende Beispiel zeigt das Attribut msg, das unterhalb des Knotens Common Base Event eingefügt wird.

- Klicken Sie auf das Attribut, um die Attributseigenschaften im rechten Teilfenster anzuzeigen.
- Im vorstehenden Beispiel können Sie das Markierungsfeld Vorherige Substitution für
Übereinstimmung als Standardeinstellung verwenden auswählen, wenn nicht alle Protokollsätze das Attribut 'msg'
enthalten. Hierdurch wird dem Attribut 'msg' der Wert der letzten übereinstimmenden Nachricht zugeordnet.
- Wenn Sie für das Attribut 'msg' einen Standardwert setzen wollen, geben Sie den gewünschten Wert in das
Feld Standardwert ein.
Dieser Standardwert wird nur dann verwendet, wenn keine Substitutionsregeln vorhanden sind oder übereinstimmen und das
Markierungsfeld Vorherige Substitution für Übereinstimmung als Standardeinstellung verwenden nicht ausgewählt
ist bzw. bei Auswahl dieses Markierungsfeld kein Wert für eine vorherige Übereinstimmung gespeichert ist.
- Über das Markierungsfeld Von übergeordnetem Element benötigt für das Attribut können Sie bestimmen, ob dieses Attribut einen gültigen Wert haben muss, damit das übergeordnete Element gültig ist, oder nicht.
Substitutionsregeln für Attribute hinzufügen und konfigurieren
Um dem Common Base Event-Attribut eine Substitutionsregel hinzuzufügen, wählen Sie nacheinander die
Optionen Attribut > Hinzufügen > Substitutionsregel aus.
Die Details zur Substitutionsregel werden dann im rechten Teilfenster des Editors angezeigt.
- Das Feld Positionen kann verwendet werden, wenn der Protokollsatz Name/Wert-Paare enthält, die durch einen
Token begrenzt sind.
Der Wert eines Name/Wert-Paares kann mit dem Ausdruck $h('nameofNameValuePair') extrahiert werden.
Beispiel: Es wird derselbe Protokollsatz aus der Anwendung myapp verwendet:
<March 14, 2004 10:25:21 EST> application:myapp severity:3 message:WARNING-file style.css missing
with the separator token = []{2} and the designation token = : ,
the expression to extract the message would be $h('message').
Weitere Möglichkeiten zur Anwendung des Felds Positionen finden Sie unter
Feld 'Positionen'.
- Die Übereinstimmung gibt ein Muster an, nach dem im Datensatz gesucht wird.
Wird das Feld 'Positionen' angegeben, wird nur ein Teil des Datensatzes durchsucht. Ansonsten wird der gesamte
Datensatz nach dem angegebenen Muster durchsucht.Innerhalb dieses Musters können bestimmte Daten mit Hilfe von runden
Klammern zu einer Gruppe zusammengefasst sein. Darauf kann im Feld Substitution verwiesen werden. Wenn das
Muster mit Daten im Datensatz übereinstimmt, wird dem Common Base Event-Attribut, für das die Regel geschrieben wurde, ein Wert
zugeordnet, der auf dem Feld 'Substitution' basiert. Bleibt das Feld Übereinstimmung leer, wird die Regel als Übereinstimmung betrachtet.
In dem Beispiel des Protokollsatzes für myapp kann der folgende reguläre Ausdruck verwendet werden, um den
Wert der extrahierten Nachricht mit dem Feld 'Positionen' abzugleichen:
^(\w+)-(.*)
Dieses passende Muster enthält zwei Gruppen.
Die erste Gruppe ist eine Gruppe von Wortzeichen vor einem Bindestrich.
Die zweite Gruppe besteht aus allen Angaben nach dem Bindestrich bis zum Ende des Nachrichtenwerts gemäß Definition
durch die Angabe im Feld 'Positionen'.
- Das Feld Substitution ist der Wert, der dem Common Base Event-Attribut als Ergebnis einer
Übereinstimmung zugeordnet werden soll.
Die Werte können aus der abgeglichenen Zeichenfolge extrahiert werden, indem die Literale $1, $2 etc. verwendet
werden, die die im passenden Muster definierten Gruppen darstellen.
Im Beispiel des Protokollsatzes für myapp geben Sie die Substitution als $2 an, wenn Sie lediglich den Wert
der Warnung dem Common Base Event-Attribut 'msg' zuordnen wollen.

- Die Erweiterungsklasse für Substitution kann verwendet werden, wenn Sie für den Wert, der mit den Feldern
'Positionen', 'Übereinstimmung' und 'Substitution' übereinstimmt, eine angepasste Syntaxanalyselogik ausführen wollen.
Die Benutzerklasse muss die Schnittstelle des generischen Protokolladapters,
org.eclipse.hyades.logging.adapter.parsers.ISubstitutionExtension
implementieren, damit sie vom generischen Protokolladapter ausgeführt werden kann.
- Das Feld Zeitformat kann verwendet werden, um eine Substitutionsregel für das Attribut 'creationTime'
zu erstellen.
Geben Sie in dieses Feld eine Zeichenfolge für ein Java-Zeitmuster ein. Das eingegebene Muster wird verwendet, um den
Wert, der mit den Feldern 'Positionen', 'Übereinstimmung' und 'Substitution' übereinstimmt, mit Hilfe der Klasse
java.text.SimpleDateFormat syntaktisch zu analysieren, um das Datum als Langwert zu generieren.
Dieser Wert wird anschließend verwendet, um den Zeichenfolgewert des Datums in dem für Common Base Event erforderlichen
Datums-/Zeitformat (dateTime) des XML-Schemas zu generieren.
In dem Beispiel des Protokollsatzes für myapp sieht die Regel für das Zeitformat wie folgt aus:

- Speichern Sie die Adapterkonfigurationsdatei, um die vorgenommenen Änderungen anzuwenden.
- Um die Regeln zu testen, klicken Sie das Symbol Adapter erneut ausführen
an, um den Adapter auszuführen. Die Ergebnisse werden in der Sicht 'Ergebnis des Formatierungsprogramms' angezeigt.
Hinweis: Sie können die Nummer des Datensatzes bestimmen, mit dem Sie die Anzeige beginnen möchten. Verwenden Sie die Dropdown-Liste, die am Symbol 'Adapter erneut ausführen' verfügbar ist, und wählen Sie Bei Datensatz beginnen aus. Hierdurch öffnet sich ein Dialog, in dem Sie eine Datensatznummer angeben können, mit der begonnen werden soll.
- Klicken Sie Nächstes Ereignis anzeigen
an, um die Common Base Event-Attribute anzuzeigen, die anhand der von Ihnen geschriebenen Regeln generiert wurden.
Hinweis: Weitere Informationen zum einfachen Datumsformat von Java (SimpleDateFormat)
finden Sie in folgender JavaDoc: java.sun.com/j2se/1.4.2/docs/api/java/text/SimpleDateFormat.html
Nach Fertigstellung der Parserregeln können Sie die Ausgabeprogrammkomponente der Adapterkonfigurationsdatei konfigurieren.
Verwandte Konzepte
Übersicht über generischen Hyades-Protokolladapter
Spezifikation des Common Base Event-Formats
Verwandte Tasks
Ausgabeprogrammkomponente konfigurieren
(C) Copyright IBM Corporation 2000, 2005. Alle Rechte vorbehalten.