java - Log4j 和 syslogappender

标签 java log4j syslog

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

相关文章:

java - 通过JMS java登录数据库

java - 条件 log4j.xml 模式

java - SyslogAppender 不工作

c++ - 系统日志不转发远程消息

c - rsyslogd 问题,使用 openlog () 记录,但日志转到/var/log/messages

java - XML 获取特定属性上节点的值

java - 为什么将字符串转换为 double 可能会损失精度?

Java - 泛型类型的返回类型

java - 在图书馆管理系统上使用多线程

java - 如何通过 Maven 在 RCP 应用程序中使用 log4j?