Regex, um bestimmte Fehler aus einem Protokoll auszuschließen

321
O.E

Ich bin neu in diesem Bereich, daher wäre ich Ihnen dankbar, wenn Sie dafür einen Regex schreiben würden.

Ich habe ein Protokoll mit Fehlern, die in Ordnung sind. Ich möchte jedoch bestimmte Fehlertypen von der Meldung ausschließen, da es sich um bekannte Fehler handelt:

Hier ist ein Beispiel für einen guten Protokollfehler

12/09/2012 11:30:01 AM : [ERROR] : System.Data.SqlClient.SqlException: Invalid column name 'sys_utc_updated'. 

In derselben Protokolldatei möchte ich eine Reihe von Fehlern mit diesem Typ ausschließen:

12/09/2012 12:12:01 [0] 30-Error: Invalid index command: "/search.asp". 

und Fehlerzeilen mit diesem Typ ausschließen:

12/09/2012 04:12:06 [2] 30-Error: Action failed - unencrypted communication is not allowed : "ACTION=GETSTATUS". 

Ich habe versucht, diese Regex zu schreiben, aber ich glaube nicht, dass ich sie richtig verstanden habe:

/(?:(?:Error)(?:ERROR)(?:[^Invalid\ index\ command]*))|(?:(?:Action\ failed\ \-\ unencrypted\ communication\ is\ not\ allowed))/im 
-2
Warum laden Sie die Protokolldatei nicht in etwas wie Excel und filtern darin? Burgi vor 7 Jahren 0

1 Antwort auf die Frage

0
Der Hochstapler

Ein einfaches Beispiel /30-Error/würde aus Ihrem Beispiel genügen. Oder auch /Error/wenn Sie die Groß- und Kleinschreibung beachten.

Vielen Dank für Ihre Eingabe, es ist etwas schwieriger als zuerst gedacht, da sich der Wert 30 ändert und die Fehlervariable ein Muster aufweist, für das ein Ausschluss erforderlich ist. Ich bin fast mit meinem Regex fertig, indem ich ihn durch die Testphasen stelle und ihn weiter verfeinere O.E vor 7 Jahren 0