2014-12-02 93 views
2

即時通訊嘗試讀取碼頭日誌的多行,對於一個來源現在做任何人如何做到這一點?Fluentd閱讀碼頭日誌與多行

<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

在我來說,我不能作爲遺留代碼的一部分更改格式。我發現了一種適用於我的模式。我把它放在這裏以防萬一有用

<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> 
0

看來您正在使用log4j進行日誌記錄。

其輸出格式和語法由其log4j配置控制。

你可能想要與你的log4j配置同步你的流暢的努力,甚至可以在log4j配置方面做一些小的調整,讓你的生活更輕鬆。

請注意,log4j甚至可以配置爲以xml或json格式輸出,或者直接輸入到您的fluentd數據庫中,從而使解析步驟至少更簡單。

提示:如果你決定走這條路,你要知道,如果你正在使用的log4j的1.x或2.x的(如文檔是不同的)