我正在使用logback来更新syslog,这是我如何配置我的appender:
<appender name="SYSLOG" class="ch.qos.logback.classic.net.SyslogAppender"> <syslogHost>localhost</syslogHost> <facility>LOCAL0</facility> <suffixPattern>[%thread] %logger %msg</suffixPattern> </appender>
我更新了rsyslog.conf来监听UDP事件,取消注释下面的行:
# Provides UDP syslog reception $ModLoad imudp.so $UDPServerRun 514
conf更改后重新启动的syslog守护程序.
在我所有的测试盒上,它似乎工作正常!但是,系统syslog上的一个没有被我的进程更新(其他的东西正在更新它很好),我想知道如何调试这个问题?任何我应该研究的东西都记住了?
感谢任何想法
解决方法
当然.顺序地,尝试这4个测试:
1.测试回溯:明显的一个:添加一个FileAppender作为第二个appender,并确保事件出现在那里.你的帖子意味着“it”可以在dev中运行,但是我不确定它是回溯还是appender,而且配置代码段没有一个append-ref部分来发送事件到SYSLOG.
如果您的FileAppender什么也不收到,这是一个应用程序/环境问题,或者该服务器不会生成提供给appender的事件.
2.确认消息正在生成:假设FileAppender接收到消息但syslog没有,请运行:
tcpdump -n -i lo -X -s 1500
在…上输出UDP数据包的全部有效载荷.使您的应用程序生成日志消息.你应该看到至少有一个数据包,目的地是127.0.0.1:514.如果你不这样做,那就是发件人.如果你这样做,那就是rsyslog配置.
3.确认rsyslog绑定到端口514:
lsof -i :514
或者如果您没有lsof并且确定另一个进程没有绑定到514:
netstat -ln | grep 514
4.查看rsyslog收到的内容:如果事件发送到端口514,在停止live rsyslogd后,以调试模式重新启动并连接到终端:
/etc/init.d/rsyslog stop rsyslogd -d
你应该看到事件到达.如果没有一个确定问题,这是一条脱离殴打路径的路.在已知良好的J2EE和系统日志环境中,我已经有了logback config.希望上面的其中一件事情会做到这一点.