我有一個使用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