2014-12-02 2 views
2

im пытается прочитать несколько строк журнала причала, для источника кто-нибудь теперь, как это сделать?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, чтобы облегчить вашу жизнь в fluentd.

Примечание. Log4j может быть настроен для вывода в xml или json или непосредственно в вашу базу данных fluentd, что делает шаг анализа по меньшей мере проще.

Совет: если вы решите пойти по этому пути, вы хотите знать, если вы используете log4j 1.x или 2.x (как документация отличается)