Gibt es speziell für die Protokollanalyse eine C ++ - Bibliothek (um mehrzeilige Ereignisse zu erkennen)? Wie MergeLog für Apache-Logs oder libcurl für Web-Parsing?
Wenn Sie nicht über eine geeignete Bibliothek stolpern, wäre mein Rat, einen eigenständigen Lexer zu verwenden.
Auf diese Weise vermeiden Sie es, eine Grammatik zu definieren (was für Log-Dateien sowieso sinnlos ist) und vermeiden das gefürchtete Frankenstein-Regex-Monster, das manchmal an dunklen Orten zu sehen ist.
Ich kenne keine Log-Parsing-Bibliotheken. Du könntest immer einen Allzweck-Parser-Generator verwenden, wie Boost.Spirit , ANTLR oder lex / yacc ; dieser Ansatz wäre wahrscheinlich mehr Arbeit, aber er ist extrem flexibel.
Wenn ein Parser-Generator übertrieben ist, würde ich einfach eine Menge Regexes auf die Log-Dateien werfen.