Java-Klasse für statischen Adapter schreiben
Beim Erstellen eines statischen Protokollparsers werden die Extrahierungsprogramm-, Parser- und
Formatierungsprogrammkomponenten der Adapterkonfigurationsdatei durch eine Java-Klasse ersetzt. Die statische
Parserklasse muss die Schnittstelle org.eclipse.hyades.logging.parser.IParser implementieren.
Hierzu kann einer der abstrakten Klassen org.eclipse.hyades.logging.parser.Parser oder
org.eclipse.hyades.logging.parser.MonitoringParser erweitert werden.
Parserklasse erweitern
Diese Klasse sollte verwendet werden, wenn Sie einen statischen Parser zur syntaktischen Analyse von Dateien, die nicht mehr aktualisiert werden, bzw. zur einmaligen syntaktischen Analyse einer Protokolldatei während der Ausführung des Kontextes erstellen. Wird diese Klasse verwendet, so muss das Kontextexemplar so konfiguriert werden, dass das Markierungsfeld 'Dauerbetrieb' nicht aktiviert ist.
- Fügen Sie eine Importanweisung import org.eclipse.hyades.logging.parsers.Parser; ein.
- Fügen Sie die folgenden Methoden zur Klasse hinzu:
- public void setConfiguration(Hashtable)
Diese Methode wird vom generischen Protokolladapter aufgerufen, um der statischen Parserklasse Konfigurationsdaten
zur Verfügung zu stellen, die der Benutzer im Assistenten 'Protokolldatei importieren' angegeben hat, oder die in der
Adapterkonfigurationsdatei vorliegen.
- public void preParse()
Hier werden die Initialisierungsvorgänge (sofern anwendbar), wie beispielsweise das Herstellen von Verbindungen, ausgeführt.
- public void parser(Log)
Die Implementierung dieser Methode ist nicht erforderlich.
Sie kann von 'org.eclipse.hyades.logging.parsers.Parser' übernommen werden.
- public ICommonBaseEvent[] parseNext()
Diese Methode führt den Großteil der Logik für die Syntaxanalyse der Protokolldatei aus, wie beispielsweise die Syntaxanalyse
einer Gruppe von Datensätzen und Rückgabe eines Bereichs von Common Base Event-Objekten, die die Daten in dieser
Datensatzgruppe darstellen.
- public void postParse()
Hier werden die Tasks zur Bereinigung ausgeführt.
Hinweis: Die geschützte Methode Parser.readALine() kann verwendet werden, um Daten aus der Protokolldatei zu lesen. Diese Methode liest eine Zeile aus der Protokolldatei und löst eine Ausnahmebedingung aus, wenn beim Lesen der Datei ein Fehler auftritt. Die Ausnahmebedingung enthält Informationen darüber, warum der Lesevorgang fehlgeschlagen ist. Die bestehende Methode 'readLine()', die einen Wert von null zurückgibt, wenn ein Fehler auftritt, wird von diesem Release nicht weiter unterstützt.
Erweiterung der Klasse 'MonitoringParser'
Diese Klasse sollte verwendet werden, wenn Sie einen statischen Parser zur dauerhaften Überwachung einer Protokolldatei erstellen möchten. Hinweis: Mit Hilfe dieser Klasse kann eine Protokolldatei überwacht werden, selbst wenn die Protokolldatei zum Zeitpunkt des Überwachungsbeginns nicht existiert.
Die abstrakte Klasse org.eclipse.hyades.logging.parser.MonitoringParser
muss erweitert werden. Diese Klasse erweitert die Klasse Parser.
Implementieren Sie wie beschrieben die Methoden für die Parserklasse. Achten Sie allerdings auf Folgendes:
- Fügen Sie eine Importanweisung import org.eclipse.hyades.logging.parser.MonitoringParser ein.
- Wenn die folgenden Parsermethoden überschrieben werden, stellen Sie sicher, dass die entsprechenden Methoden der Superklasse von den überschriebenen Methoden aufgerufen werden:
- setConfiguration()
- readALine()
- postParse()
- Fügen Sie in der Methode parseNext() einen Aufruf von setEndOfFile() ein, bevor sie zu null zurückkehrt, um anzuzeigen, dass zurzeit keine weiteren syntaktisch analysierten Datensätze vorliegen, die zurückgegeben werden könnten.
Hierdurch wird sichergestellt, dass beim nächsten Aufruf von readALine() die Protokolldatei überprüft wird, um zu bestimmen, ob die Datei sich geändert hat und über neue Datensätze verfügt, die syntaktisch analysiert werden können.
- Wenn der statische Parser einen Befehl benötigt, um die Protokolldatei in ein Format umzuwandeln, das sich leichter syntaktisch analysieren lässt, bzw. um die Protokolldatei zu generieren, so muss dieser für die Klasse
MonitoringParser unter Verwendung einer der folgenden Methoden bestimmt werden, nachdem setConfiguration() aufgerufen wurde:
setConverterCommand(String) oder setConverterCommand(String[]).
Wenn der Befehl die Protokolldaten in eine Datei mit einem anderen als dem in den Konfigurationsparametern unter setConfiguration() angegebenen Namen schreibt, so muss der neue Protokolldateiname in der Klasse MonitoringParser über die Methode setFilename(String) angegeben werden.
Hinweis:
- Das Plug-in org.eclipse.hyades.logging.parsers ist nun vom Plug-in org.eclipse.hyades.logging.adapter abhängig.
- Die Klasse MonitoringParser bietet mit Ausnahme der Methode readALine() keinen Direktzugriff auf die Protokolldatei.
Statische Parser, die zurzeit das Mitglied logFile der Klasse 'Parser' verwenden, um Daten direkt aus der Protokolldatei zu lesen, sollten geändert werden, so dass sie die Methode readALine() verwenden.
Nach dem Schreiben und Testen Ihrer Java-Parserklasse können Sie die Sensorkomponente der Adapterkonfigurationsdatei so konfigurieren, dass sie auf diese Klasse verweist.
.
Verwandte Konzepte
Übersicht über generischen Hyades-Protokolladapter
Spezifikation des Common Base Event-Formats
Verwandte Aufgaben
Protokollparser erstellen
Statischen Adapter erstellen
Sensorkomponente konfigurieren
Verwandte Referenzen
Struktur der Adapterkonfigurationsdatei
Editor für Adapterkonfiguration
Grammatik von regulären Ausdrücken
(C) Copyright IBM Corporation 2000, 2005. Alle Rechte vorbehalten.