【问题标题】: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,我需要进行哪些更改?

【问题讨论】:

  • 我做到了,但我从 node.js (bunyan-syslog) 登录到同一台机器上的 syslog 就好了,所以这不太可能。我试试看。
  • 不确定 node.js syslog 日志是如何工作的,但从syslog.cc 来看,我会说它使用本地日志,而 logback/log4j 使用远程日志(因此是主机和端口)。顺便提一句。 tcpdumping 环回接口可以判断消息是否从 java 发送...

标签: java logback syslog


【解决方案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)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多