簡體   English   中英

Fluentd 源日志格式正則表達式

[英]Fluentd source log format regex

再會! 我有這種格式的日志:

[14-10-2016 00:00:04,004  INFO WebService:1603] [172.16.1.10] [0000077000013] [ID=N0000077000013] [N=147639237688] REQUEST getStatus

我想到了這個正則表達式:

 /(?<time>\d{1,2}-\d{1,2}-\d{4} \d{1,2}:\d{1,2}:\d{1,2},\d{3}) (?<message1>[=]+) .(?<ID>ID=\w*) .(?<N>N=\w*) (?<messages>.*)/

我想識別日期,從 INFO 到 ID=、ID、N 和最后一部分,但 fluentd 返回“模式不匹配”​​。 正則表達式的每個部分都在流利的正則表達式測試站點上單獨工作。

什么是正則表達式? 謝謝你。

您可以使用

(?<time>\d{1,2}-\d{1,2}-\d{4} +\d{1,2}:\d{1,2}:\d{1,2},\d{3}) +(?<message1>[A-Z]+) .*\[ID=(?<ID>\w+)] +\[N=(?<N>\w+)] (?<messages>.*)

查看正則表達式演示

請注意,我在空格后添加了+以匹配 1 次或多次出現,並調整了IDN組的組邊界。

此外,您的message1組模式[=]+匹配 1+ =符號,而您在那里有INFO字符串。 我將其更改為[AZ]+以匹配 1 個或多個大寫 ASCII 字母。

最后,由於組message1ID之間有文本,您需要確保使用這些字符,因此,我使用了.* (除換行符以外的任何 0+ 字符)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM