我有一个使用 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");
}
最佳答案
系统日志中未启用远程日志记录。很奇怪,因为它仍然打开并监听 514。一旦我开始使用 syslog -r,一切都开始记录。
关于java - Log4j 和 syslogappender,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8350027/