Gibt es eine C++ - Bibliothek speziell für das Log-Parsing (um mehrzeilige Ereignisse zu erkennen)? Wie MergeLog für Apache-Logs oder libcurl für Web-Parsing?C++ - Bibliothek für das Log-Parsing
Antwort
Sofern Sie nicht auf eine geeignete Bibliothek stoßen, wäre mein Ratschlag, einen Standalone-Lexer zu verwenden.
Auf diese Weise vermeiden Sie, eine Grammatik zu definieren (was für Protokolldateien ohnehin sinnlos ist) und vermeiden das gefürchtete Frankenstein-Regex-Monster, das manchmal an dunklen Orten zu sehen ist.
Mir sind keine Log-Parsing-Bibliotheken bekannt. Sie könnten 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, dann würde ich einfach eine Menge Regexes auf die Logdateien werfen.
Danke Josh, yacc/lex sieht ein wenig schwer auf dem Programmierer. –
Sie können den Parser-Teil überspringen und einen Standalone-Lexer verwenden. Dies ist viel praktischer als ein Haufen unstrukturierter Regexes und viel einfacher als ein vollständiger Parser. – bltxd
@stack_zen: Spirit, ANTLR und lex/yacc erfüllen alle dieselbe Rolle, mehr oder weniger. Spirit und ANTLR sind moderner und wahrscheinlich leichter zu erlernen. Sie alle können ein bisschen schwer sein, wie Sie sagten, aber sie sind mächtige Werkzeuge. –
- 1. PubSub-Bibliothek für C#
- 2. C-Bibliothek für Graphen
- 3. Crypto-Bibliothek für C++
- 4. C++ Bibliothek für XMLRPC
- 5. P2P-Bibliothek für C++
- 6. GetOpt Bibliothek für C#
- 7. JSON-Bibliothek für C#
- 8. UUID-Bibliothek für C?
- 9. Instrumentation (Diagnose) -Bibliothek für C++
- 10. Verzeichnisstruktur für eine C++ - Bibliothek
- 11. Mature Standard-Bibliothek für C
- 12. Hierarchische Speicherzuordner Bibliothek für C++
- 13. Gute Plot-Bibliothek für C?
- 14. XML-RPC-Bibliothek für C++
- 15. einfache bcrypt Bibliothek für C
- 16. Empfehlung für C# -Matrix-Bibliothek
- 17. C Installierte Bibliothek - Was ist das?
- 18. c/C++ NLP-Bibliothek
- 19. Pcap-Bibliothek für C# odd Problem
- 20. Multi-Algorithmus Kompressions-Bibliothek für C
- 21. OpenGL Windowing-Bibliothek für das Jahr 2009
- 22. Ich brauche eine C# -Bibliothek für zipx
- 23. Premake erstellt Makefile für C# -Bibliothek nicht
- 24. Gute Bibliothek für 3D-Mathematik in C#?
- 25. Objective-C-Bibliothek für RSS-Feed-Parsing?
- 26. Cache-Bibliothek für Objective-C (iPhone)
- 27. Beste Bibliothek für Statistiken in C++?
- 28. ODBC v Libpq: C-Bibliothek für PostgreSQL
- 29. Qt C++ - Bibliothek für Windows und OpenGL
- 30. C# -Bibliothek für (x) HTML-Kompatibilität
Ja, es heißt boost :: regex. –
Vielleicht wird Maxims Vorschlag für diesen Fall wirklich ausreichen. Boost.Xpressive sieht schöner aus, http://www.boost.org/doc/libs/1_36_0/doc/html/xpressive.html –