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 和最后一部分,但是很流利 returns 我 "pattern not match"。正则表达式的每个部分都在流畅的正则表达式测试站点上单独工作。
什么是正则表达式?
谢谢。
您可以使用
(?<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 次或多次出现,并调整了 ID
和 N
组的组边界。
此外,您的 message1
组模式 [=]+
匹配 1+ =
个符号,而您那里有 INFO
个字符串。我将其更改为 [A-Z]+
以匹配 1 个或多个大写 ASCII 字母。
最后,由于组 message1
和 ID
之间有文本,您需要确保使用这些字符,因此,我使用了 .*
(任何 0+ 个字符换行符号除外)。
美好的一天! 我有这种格式的日志:
[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 和最后一部分,但是很流利 returns 我 "pattern not match"。正则表达式的每个部分都在流畅的正则表达式测试站点上单独工作。
什么是正则表达式? 谢谢。
您可以使用
(?<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 次或多次出现,并调整了 ID
和 N
组的组边界。
此外,您的 message1
组模式 [=]+
匹配 1+ =
个符号,而您那里有 INFO
个字符串。我将其更改为 [A-Z]+
以匹配 1 个或多个大写 ASCII 字母。
最后,由于组 message1
和 ID
之间有文本,您需要确保使用这些字符,因此,我使用了 .*
(任何 0+ 个字符换行符号除外)。