3

我试图阅读码头日志的多行,对于来源现在有人怎么做?

<source>
type tail
format multiline
format_firstline /^\[/
format1 /^\[[^ ]* (?<time>[^\]]*)\] *(?<level>[^ ]*) $/
path /mnt/current/log/jettylog4j.log
pos_file /mnt/current/log/fluentd.jettylog4j.pos
read_from_head true
tag jettylog
refresh_interval 30
</source>

有了这个,我无法获得所有线路的消息。

4

2 回答 2

4

就我而言,我无法像遗留代码的一部分那样更改格式。我找到了一个适合我的模式。我把它放在这里以防对某人有用

<source>
type tail
format multiline
format_firstline /^\[/
format1 /^\[[^ ]* (?<time>[^\]]*)\] *(?<level>[^ ]*) (?<message>[^\n]*(\n^[^\[].*|$))/
path /mnt/current/log/jettylog4j.log
pos_file /mnt/current/log/fluentd.jettylog4j.pos
read_from_head true
tag jettylog
refresh_interval 30
</source>
于 2014-12-03T16:12:04.827 回答
0

看来您正在使用 log4j 进行日志记录。

它的输出格式和语法由它的 log4j 配置控制。

您可能希望将您的 fluentd 工作与您的 log4j 配置同步,甚至可能在 log4j 配置方面进行一些小调整,以使您在 fluentd 中的生活更轻松。

请注意,log4j 甚至可以配置为以 xml 或 json 格式输出,或者直接输出到您的 fluentd 数据库中,从而使解析步骤至少更容易。

提示:如果您决定走这条路,您会想知道您使用的是 log4j 1.x 还是 2.x(因为文档不同)

于 2014-12-02T13:01:41.700 回答