log4j SyslogAppender 不会将日志发送到 syslog

Posted

技术标签:

【中文标题】log4j SyslogAppender 不会将日志发送到 syslog【英文标题】:log4j SyslogAppender does not send logs to syslog 【发布时间】:2009-10-07 22:54:05 【问题描述】:

在 Websphere 中运行的 Web 应用程序正在使用 log4j SysLogAppender 将消息记录到位于同一台机器上的 syslog 守护程序。 syslog 守护程序的默认设置为 LOG_FROM_REMOTE=NO。这是否意味着与 syslog 守护进程位于同一台机器上的 Web 应用程序无法接受消息?

【问题讨论】:

【参考方案1】:

如果LOG_FROM_REMOTE 设置为YES,它会监听指定的UDP 端口。如果设置为NO,则不会。由于您将值设置为 no,因此它不会侦听端口并且无法接收日志消息。

即使 logappender 和守护进程在同一台计算机上,它们也需要通过 UDP 端口进行通信。

【讨论】:

感谢您的快速转身。真的很有帮助。 什么是LOG_FROM_REMOTE?它在哪里设置?【参考方案2】:

感谢 jcasso 的帮助。它有助于解决问题。为了帮助可能遇到同样问题的其他人,请检查 /etc/default/syslog.conf 中的 LOG_FROM_REMOTE 属性是否设置为 YES。否则 log4j 日志将不会到达 syslog。 syslog 守护进程在端口 514(默认端口)上侦听 UDP 数据包。因此,在打开调试的情况下运行 log4j 将无济于事,无论数据包是否到达 syslog,log4j 都无济于事。希望对你有帮助

【讨论】:

【参考方案3】:

如果您使用 syslog-ng,则需要取消注释(在 /etc/syslog-ng 文件中)“udp();”行中的“source s_all ”部分。

【讨论】:

以上是关于log4j SyslogAppender 不会将日志发送到 syslog的主要内容,如果未能解决你的问题,请参考以下文章

log4j SyslogAppender - TCP 支持?

在 Alfresco 的 log4j.properties 中配置 SyslogAppender

Log4j 和 syslogappender

SyslogAppender 不工作

Logback SyslogAppender stacktrace 日志记录前缀

Log4J 2 Syslog Appender 无法正常工作