【发布时间】:2019-05-21 05:32:00
【问题描述】:
我目前正在设置 efk 堆栈来解析我的 java 日志 (log4j)。我能够解析除日志最后一行之外的所有日志。所以例如。
2019-05-17 07:19:35,708 WARN log-line-1
2019-05-17 07:19:35,708 WARN log-line-2
所以log-line-1 被解析,但不是log-line-2。否则我可以解析所有内容。
我已经测试了我的正则表达式 (https://rubular.com/),它运行良好。
以下是fluentd的配置:
format multiline
format_firstline /\d{4}-\d{1,2}-\d{1,2} \d{1,2}:\d{1,2}:\d{1,2},\d{3}/
format1 /(?<logtime>\d{4}-\d{1,2}-\d{1,2} \d{1,2}:\d{1,2}:\d{1,2},\d{3})[\s](?<LEVEL>[A-Z]+)(?<message>(?=([\w\W\s]*?\d{4}-\d{2}-\d{2}[\s]*\d{2}:\d{2}:\d{2}\,\d{3}))([\w\W\s]*?)(?=(\d{4}-\d{2}-\d{2}[\s]*\d{2}:\d{2}:\d{2}\,\d{3}))|((.|\s)*))/
@type tail
time_key logtime
【问题讨论】:
-
@Laurenz Albe:- 感谢您编辑问题!!