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