C ++ - Bibliothek für das Log-Parsing [geschlossen]

8

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?

    
Joao Figueiredo 06.01.2011, 12:55
quelle

2 Antworten

6

Wenn Sie nicht über eine geeignete Bibliothek stolpern, wäre mein Rat, einen eigenständigen Lexer zu verwenden.

  • Anstelle von flex + bison verwenden Sie flex alone (C / C ++).
  • Anstelle von ocamllex + ocamlyacc verwenden Sie ocamllex allein (OCaml).
  • Ragel (C / C ++ / Objective C / D / Java / Ruby).

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.

    
bltxd 06.01.2011, 15:49
quelle
2

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.

    
Josh Kelley 06.01.2011 13:11
quelle

Tags und Links