log4j SyslogAppender 不将日志发送到 syslog
Websphere 中运行的 Web 应用程序正在使用 log4j SysLogAppender 将消息记录到位于同一计算机中的 syslog 守护程序。 syslog 守护程序的默认设置为 LOG_FROM_REMOTE=NO。这是否意味着与 syslog 守护程序位于同一台计算机上的 Web 应用程序无法接受消息?
A web application running in Websphere is using log4j SysLogAppender to log messages to a syslog daemon located in the same machine. The default setting of the syslog daemon says LOG_FROM_REMOTE=NO. Does this mean that the web application which is located in the same machine as the syslog daemon cannot accept the messages?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
如果
LOG_FROM_REMOTE
设置为YES
,它将侦听指定的UDP端口。如果将其设置为NO
,则不会。由于您将该值设置为 no,因此它不会监听端口,也无法接收日志消息。即使 logappender 和守护进程位于同一台计算机上,它们也需要通过 UDP 端口进行通信。
If
LOG_FROM_REMOTE
is set toYES
it listens the specified UDP port. If it is set toNO
it does not. Since you set the value to no, it does not listen to the port and cannot receive log messages.Even if logappender and the daemon are on the same computer, they need to communicate via a UDP port.
谢谢你的帮助。它有助于解决问题。为了帮助其他可能遇到同样问题的人,请检查 /etc/default/syslog.conf 中的 LOG_FROM_REMOTE 属性是否设置为 YES。否则 log4j 日志将无法到达 syslog。 syslog daemon 在端口 514(默认端口)上侦听 UDP 数据包。因此,在打开调试的情况下运行 log4j 不会有任何帮助,无论数据包是否到达 syslog,log4j 都不会。希望有帮助
Thank you jcasso for your help. It helped to resolve the problem. Just to help others who might ran into the same problem, please check whether the LOG_FROM_REMOTE property is set to YES in /etc/default/syslog.conf. Otherwise log4j logs will not reach syslog. syslog dameon listens for UDP packets on port 514 (default port). So running log4j with debug turned on will not help log4j will not whether the packets reached syslog or not. Hope it helps
如果您使用 syslog-ng,则需要取消注释(在 /etc/syslog-ng 文件中)“source s_all {”部分中的“udp();”行。
If you use syslog-ng then need to uncomment (in /etc/syslog-ng file) " udp(); " line in " source s_all { " section.