2009-08-19 63 views
3

我想我的web应用程序日志中记录到系统日志在LOCAL4水平。环境:Tomcat6,OpenSolaris,Struts2,log4j。我log4j.properties内容如下 -的Tomcat6 Web应用程序使用log4j来进行记录,无法登录到系统日志

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 

我已编辑/etc/syslog.conf文件,并在最终

local4.notice    /var/log/mylog.log 

这之后我已经重新启动系统日志附加以下行服务。当我从shell中运行以下命令它在/var/log/mylog.log登录正确。这主要是指syslog服务工作法正确

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

但我很无法理解为什么从Web应用程序日志不会继续执行/var/log/mylog.log。我的log4j配置对于SysLogAppender是否正确?

当我尝试正常追加程序,如“DailyRollingFileAppender”等,记录工作fine..but我只是无法获得SyslogAppender工作..

谢谢! -Keshav

回答

2

通常情况下,附加到系统日志,因为系统日志守护进程未设置为接受来自网络的数据包将失败。您的“记录器-i -p”不会说是否允许数据包...

+0

对不起,我听不懂。我试图从本地主机,我确信syslogd正在监听它的udp端口。 – Keshav 2009-08-20 16:48:19

+1

感谢Ceki,你给了我正确的意见。 – Keshav 2009-08-24 11:31:47

7

Ubuntu 10.04上的类似问题,为了接收SyslogAppender消息,我必须取消注释/etc/rsyslog.conf中的两行。

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

谢谢。这一个帮助! – 2012-09-18 23:18:34