2014-12-02 10 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

(문서가 다른 같은) 당신은 log4j를 1.x 나 2.X를 사용하는 경우 알아야 할 것 레거시 코드의 일부인 형식을 변경하십시오. 나는 나를 위해 일하는 패턴을 발견했다. 나는 여기에 넣으면 누군가를 위해 유용하다.

<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 데이터베이스에 출력하도록 구성 할 수도 있으므로 구문 분석 단계를 최소한으로 쉽게 설정할 수 있습니다.

팁 :이 경로를 이동하기로 결정하면, 당신은 내가 할 수없는 내 경우