我有一个使用log4j SyslogAppender(facility = USER)的Java应用程序,我可以在端口514上使用tcpdump看到我的应用程序正在将预期的日志消息作为数据报发送,并且netstat告诉我syslogd(红色帽子)正在运行并且正在监听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,一切都开始记录。