2009-08-19 4 views
3

local4 수준의 syslog에 웹 응용 프로그램 로그를 기록하려고합니다. 환경 : Tomcat6, OpenSolaris, Struts2, log4j. 나는 /etc/syslog.conf 파일을 편집하고 난 시스템 로그를 다시 시작한이 후 최종로깅을 위해 log4j를 사용하는 Tomcat6 webapp, syslog에 로그온 할 수 없습니다.

local4.notice    /var/log/mylog.log 

에 다음 줄을 추가 한

log4j.rootLogger=INFO, SYSLOG 
log4j.appender.SYSLOG=org.apache.log4j.net.SyslogAppender 
log4j.appender.SYSLOG.syslogHost=localhost 
log4j.appender.SYSLOG.layout=org.apache.log4j.PatternLayout 
log4j.appender.SYSLOG.layout.ConversionPattern=%d [%t] %-5p - %m%n 
log4j.appender.SYSLOG.Facility=local4 

follows- 나의 log4j.properties의 내용입니다 서비스. 셸에서 다음 명령을 실행하면 /var/log/mylog.log에 제대로 기록됩니다. 이것은 대부분의 syslog 서비스가 correctly-

logger -i -p local4.notice -t "check log" "test message" 

을하고있다하지만 웹 애플리케이션의 로그는 결코 /var/log/mylog.log에 도달하지 이유를 이해하는 것은 매우 드릴 수 없습니다 것을 의미한다. 내 log4j 구성이 SysLogAppender에 맞습니까?

내가 좋아하는 일반 펜더를하려고하면 "DailyRollingFileAppender"는 등, 로깅 작동은 fine..but 나는 SyslogAppender 작동시킬 그냥 드릴 수 없습니다 ..

감사합니다! -Keshav

답변

2

일반적으로 syslog 데몬이 네트워크에서 패킷을 허용하도록 설정되어 있지 않으므로 syslog에 추가하는 데 실패합니다. 당신의 "logger -i -p"는 패킷이 허용되는지 말하지 않습니다 ...

+0

죄송합니다. 이해하지 못했습니다. localhost에서 시도하고 있는데 syslogd가 UDP 포트에서 수신 대기하는지 확신합니다. – Keshav

+1

감사합니다 Ceki, 당신은 내게 올바른 조언을주었습니다. – Keshav

7

우분투 10.04와 비슷한 문제로, SyslogAppender 메시지를 수신하기 위해 /etc/rsyslog.conf에서 두 줄의 주석 처리를 제거해야했습니다.

# provides UDP syslog reception 
$ModLoad imudp 
$UDPServerRun 514 
+0

감사합니다. 이 하나가 도왔다! –

관련 문제