Ich erkenne unsere Protokolle nicht. Benutzerdefiniertes Format scheint nicht angewendet zu werden.

1054
Andrew

Ich arbeite daran, ein lnav-Format hinzuzufügen, um die Protokolle meiner Java-Anwendung für Unternehmen zu analysieren. Ich habe Schwierigkeiten, sie zu erkennen. Meine json-Formatdatei sieht folgendermaßen aus:

{ "company_serverlog" : { "title" : "Company Server Log", "description" : "Log format used by the application.", "url" : "http://www.google.com", "regex" : { "std" : { "pattern" : "^(?<timestamp>\\d\\d\\d\\d-\\d\\d-\\d\\d \\d\\d:\\d\\d:\\d\\d,\\d\\d\\d)\\|(?<level>DEBUG|ERROR|WARN|HEADER)\\|(?<orig>.+:)\\|(?<method>.+\\|)(?<body>.+)$" } }, "level-field" : "level", "level" : { "error" : "ERROR", "warning" : "WARN" }, "value" : { "orig" : { "kind" : "string", "identifier" : true }, "method" : { "kind" : "string", "identifier" : true }, "body" : { "kind" : "string", "identifier" : true } }, "sample" : [ { "line" : "2016-05-25 16:07:12,367|DEBUG|source of log msg:|com.company.package.file| Log message body here" } ] } } 

lnav nimmt unsere Protokolldateien immer noch als generische Protokolldateien auf. Jede Unterstützung und / oder Empfehlung wäre sehr dankbar.

1

2 Antworten auf die Frage

1
Andrew

Das Problem war mit meiner Regex. Ich musste den Fall in unseren Protokollen ansprechen, bei dem die Ursprungserfassungsgruppe kein: -Zeichen für die ERROR- oder WARN-Protokollebenen hatte. Nach dem Hinzufügen des Quantifizierers? Für den Charakter: Ich konnte lnav dazu bringen, unsere Firmenprotokolldatei abzurufen und dieses benutzerdefinierte Format anzuwenden.

Dieses Versehen unterstreicht die Notwendigkeit, beim Erstellen von Regex sehr vorsichtig zu sein.

Es könnte auch in Zukunft anderen helfen, zu sehen, wo die richtigen Regex-Bits waren Journeyman Geek vor 8 Jahren 0
Danke für die Kritik. Ich habe die Antwort bearbeitet, um Ihre Vorschläge zu berücksichtigen Andrew vor 8 Jahren 0
0
Timothy Stack

Es klingt, als würde lnav die Konfigurationsdatei nicht finden. Platzieren Sie die Formatdatei in einem Unterverzeichnis des Verzeichnisses ~ / .lnav / forms? Zum Beispiel:

~/.lnav/formats/company_serverlog/format.json 

Sie können das Debuggen in lnav mit der Option '-d <Datei>' aktivieren. Das sollte Ihnen eine Vorstellung davon geben, welche Konfigurationsdateien gefunden und geladen werden.

Hmm ... Ich habe die Dinge, die du erwähnt hast, noch einmal überprüft. Ich habe die Ausgabe der Ausgabe von lnav -d überprüft und es sieht so aus, als würde meine Formatdatei geladen. Es stellte sich heraus, dass es ein Problem mit meiner Regex gab Andrew vor 8 Jahren 0
Sie sollten einen repräsentativen Satz von Zeilen in der Liste "Beispiel" der Formatkonfiguration hinzufügen, um Probleme mit den regulären Ausdrücken zu erkennen. Beim Start überprüft lnav die Beispielzeilen anhand der regulären Ausdrücke auf Richtigkeit. Wenn sie nicht korrekt sind, werden einige hilfreiche Meldungen ausgegeben, aus denen hervorgeht, wo ein Konflikt vorliegt. Timothy Stack vor 8 Jahren 0