我的 logback syslog appender 有啥问题?
Posted
技术标签:
【中文标题】我的 logback syslog appender 有啥问题?【英文标题】:What's wrong with my logback syslog appender?我的 logback syslog appender 有什么问题? 【发布时间】:2015-04-09 20:10:27 【问题描述】:我正在尝试让 logback syslog appender 正常工作,但我肯定有一些配置错误。我创建了一个small sample project,我认为它应该记录到系统日志中,但它没有。
我确定我错过了一些愚蠢的东西。这是来自logback.xml 的附加程序:
<appender name="SYSLOG" class="ch.qos.logback.classic.net.SyslogAppender">
<syslogHost>localhost</syslogHost>
<facility>USER</facility>
<suffixPattern>[%thread] %logger %msg</suffixPattern>
</appender>
我已尝试显式添加端口 (514),但并不高兴。在我尝试过的两个系统上,我已经验证 syslog 正在使用 logger "test message"
接收输入,然后跟踪 /var/log/messages 或 /var/log/system.log。
为了将 logback/slf4j 日志记录到 syslog,我需要进行哪些更改?
【问题讨论】:
你检查过***.com/questions/8350027/log4j-and-syslogappender 吗? 我做到了,但我从 node.js (bunyan-syslog) 登录到同一台机器上的 syslog 就好了,所以这不太可能。我试试看。 不确定 node.js syslog 日志是如何工作的,但从syslog.cc
来看,我会说它使用本地日志,而 logback/log4j 使用远程日志(因此是主机和端口)。顺便提一句。 tcpdumping 环回接口可以判断消息是否从 java 发送...
【参考方案1】:
您的代码没有问题,问题在于系统配置。 使用您提供的测试项目,我能够使 syslog appender 工作(Ubuntu 14.10)。
这里有一些步骤:
编辑/etc/syslog.conf
并确保您启用了网络系统日志:
# provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514
# provides TCP syslog reception
# note that logback seems to use UDP, so this isn't strictly necessary.
$ModLoad imtcp
$InputTCPServerRun 514
如果您更改配置,请重新启动 rsyslog (service rsyslog restart
)(重新加载不起作用)
检查系统日志是否正在使用lsof -i | grep syslog
进行侦听
结果:
【讨论】:
成功了。只要系统允许,我就会奖励赏金(说我必须等待 22 小时)。感谢您的帮助。 很高兴有帮助:) 我只看到 /etc/rsyslog.conf (ubuntu 16.04)以上是关于我的 logback syslog appender 有啥问题?的主要内容,如果未能解决你的问题,请参考以下文章
未设置 logback logstash 编码器 Syslog 标头
Java Syslog 仅使用 logback 记录到本地机器