Logback 只会将消息记录到 syslog 一次

Posted

技术标签:

【中文标题】Logback 只会将消息记录到 syslog 一次【英文标题】:Logback will only log a message to syslog once 【发布时间】:2020-11-29 03:25:16 【问题描述】:

我已经尝试了几个使用 logback 写入 syslog 的示例,但我发现唯一有效的是这个 JavaCodeGeeks example。它会向 syslog 写入一条消息,但无论我运行多少次代码,它都只会写入一次消息。如果我更改消息,它会将其写入 syslog,但只会写入一次。

我使用的是 Ubuntu 19.10。我已从 /etc/rsyslog.conf 中取消注释以下四行并重新启动:

# provides UDP syslog reception
module(load="imudp")
input(type="imudp" port="514")

# provides TCP syslog reception
module(load="imtcp")
input(type="imtcp" port="514")

我对 javacodegeeks 代码所做的唯一更改是注释掉 logback.xml 中的远程附加程序。它只记录到本地主机系统日志。

是什么导致了这种奇怪的行为?

【问题讨论】:

【参考方案1】:

要记录您必须设置的所有消息

$RepeatedMsgReduction off

/etc/rsyslog.conf 并重新启动 rsyslog。

https://www.rsyslog.com/doc/v8-stable/configuration/action/rsconf1_repeatedmsgreduction.html

在 Ubuntu 19.10 中默认为 on

【讨论】:

以上是关于Logback 只会将消息记录到 syslog 一次的主要内容,如果未能解决你的问题,请参考以下文章

未设置 logback logstash 编码器 Syslog 标头

Logback 的 Syslog Appender

我的 logback syslog appender 有啥问题?

Logback JsonLayout 在同一行打印所有日志

Logback 将不同的消息记录到两个文件中

syslog相关内容介绍