Ich möchte meinen Protokolldateiparser vereinfachen und komplexe reguläre Ausdrücke durch eine Vorlagenengine ersetzen. Die Idee besteht darin, den Prozess einer Template-Engine umzukehren und als Eingabe die Template-Beschreibung und eine gültige Ergebnisdatei anzugeben. Die Multi-line-Log-Dateien wie folgt aussehen:Verwenden Sie Vorlagen-Engine zum Analysieren mehrzeiliger Protokolldatei in Java
*** ID: X821 ***
- type: B5
- time-stamp: 20160202T01:11:01.2991
* Device: XKK-255141
Alle von ihnen haben die gleiche Struktur und kann in einer Pseudo-Template-Sprache beschrieben werden:
*** ID: {{string}} ***
- type: {{string}}
- time-stamp: {{date}}
* Device: XKK-{{integer}}
Gibt es eine Template-Engine, die eine parst Protokolldatei, sucht die Struktur in der Vorlagendatei und gibt den Inhalt in einer HashMap/List/Object zurück?
Hinweis: Ich bin mir bewusst, dass ich ein einfaches DSL in ANTLR schreiben könnte. Die Idee hier ist jedoch, das Parsen zu vereinfachen und zu akzeptieren, dass nur einfache mehrzeilige Protokolldateien ohne Rekursion unterstützt werden.
Stefan, danke für den Code! Dies ist eine ziemlich schlaue Art, das Problem zu lösen. –