Log4j和syslogappender
我有一个使用log4j SyslogAppender(facility = USER)的java应用程序,我可以看到在端口514上使用tcpdump我的应用程序正在发送预期的日志消息作为数据报,netstat也告诉我syslogd(red hat)正在运行并正在监听0.0 .0.0:514但我没有看到/ var / log / messages中发生任何日志记录。
在我的syslog.conf中,我有
*.info /var/log/messages
我对SyslogAppender的转换模式是
%d{MMM dd HH:mm:ss} %F %L %5p [%t] %m %n"
我无能为力,因为它无法记录或者我应该在哪里找到什么是失败的。 我没有足够的权限在机器上启动/停止syslogd或手动运行以启用详细的调试日志。
关于我如何进行的任何指示?
编辑:
下面的Appender
private void initSyslog() { SyslogAppender syslogAppender = new SyslogAppender(); syslogAppender.setName("syslog"); syslogAppender.setLayout(new PatternLayout("%d{MMM dd HH:mm:ss} %F %L %5p [%t] %m %n")); syslogAppender.setFacility("USER"); syslogAppender.setFacilityPrinting(true); syslogAppender.setSyslogHost("localhost"); syslogAppender.activateOptions(); Logger.getRootLogger().addAppender(syslogAppender); Logger.getRootLogger.info("Syslogdone"); }
syslog中未启用远程日志记录。 很奇怪,因为它仍然打开并监听514.一旦我开始使用syslog -r,一切都开始记录。
也许这会有所帮助: http : //wiki.loggly.com/log4j
这只是使用SyslogAppender设置的一个示例。 只需忽略将其转发给Loggly的部分。