2016-03-24 4 views
0

Ich verwende logstash, um Tomcat-Zugriffsprotokolle in das json-Format zu konvertieren. Die Zugriffsprotokollnamen in folgenden Formaten sindWie reguläre Ausdrücke in den logstash-Dateieingabepfad eingeschlossen werden

abcd_access_log.2016-03-15.log 
efgh_access_log.2016-02-16.log 

Das Eingangsfilter ist:

input { 
    file { 
     path => "C:\tools\apache-tomcat-8.0.32\logs\*_access_log.*.log" 
     start_position => beginning 
    } 
} 

Es wird nicht verwendet logs mit der Regex zeigt. Welche Regex sollte ich hier verwenden, um nur diese Dateien auszuwählen?

+1

In logstash 2.3 habe ich festgestellt, dass Windows-Pfade einen Schrägstrich wie in Linux verwenden müssen. Vielleicht wird das jemandem helfen. –

Antwort

0

Einfache und schnelle Art und Weise

Wenn Ihre log Datei immer nach logs\ ist, können Sie die folgende regex verwenden:

logs\\(.*?\.log) 

Capture-alles .*? gefolgt von logs\ (bitte beachten Sie doppelt \\ in der Regex). Auch Ihre Datei endet mit .log, also vergessen Sie nicht, den Punkt mit \.log zu entkommen.

Detaillierte Beschreibung ist um Regex101.


Bullet-Proof und langsame Weise

Falls es die wichtigsten Zeichen fehlen logs\, können Sie den folgenden regulären Ausdruck verwenden, das fängt den letzten Teil des Weges, die negativen lookahead mit:

\\((?:.(?!\\))+\.log) 

Hier ist die detaillierte Beschreibung wieder: Regex101