我有一个使用log4j SyslogAppender(facility = USER)的java应用程序,我可以看到在端口514上使用tcpdump,我的应用程序正在发送预期的日志消息作为数据报,同时netstat显示我syslogd(红帽子)正在运行并在0.0.0.0:514上侦听,但在/ var/log/messages中看不到任何日志记录。Log4j和syslogappender
在我的syslog.conf的,我有
*.info /var/log/messages
为SyslogAppender我的转换模式是
%d{MMM dd HH:mm:ss} %F %L %5p [%t] %m %n"
我一无所知为什么它是无法登录,或者我应该什么地方寻找到看看有什么失败。并且我没有足够的权限在机器上启动/停止syslogd或手动运行以启用详细的调试日志。
任何指针我如何继续?
编辑:
的追加程序如下
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");
}
将你告诉我们,你的log4j的配置你的appender,请 – Chris
我在运行时设置日志附加目的地,在这里它是 私人无效initSyslog(){ SyslogAppender syslogAppender =新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 (真); syslogAppender.setSyslogHost( “本地主机”); syslogAppender.activateOptions(); Logger.getRootLogger()addAppender(syslogAppender); Logger.getRootLogger.info( “Syslogdone”);} – Prasanna