我的 logback syslog appender 有什么问题?

What's wrong with my logback syslog appender?

我正在尝试让 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),但没有成功。在我试过的两个系统上,我已经验证系统日志正在使用 logger "test message" 接收输入,然后拖尾 /var/log/messages 或 /var/log/system.log.

我需要更改什么才能logback/slf4j 记录到系统日志?

你的代码没有问题,问题是系统配置。 使用您提供的测试项目,我能够使系统日志附加程序工作(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
  • 监听

结果: