You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring配置Logback向syslog服务器重复发送日志问题

问题根因

ch.qos.logback.classic.net.SyslogAppender 默认存在内置逻辑:会将异常堆栈的每一行拆分为独立的syslog消息单独发送,该逻辑不会因为你在suffixPattern中配置了%ex异常输出规则就自动关闭,因此会产生重复日志:

  • 第一条是你自定义格式、携带完整异常栈的日志
  • 后续多条是appender自动拆分栈帧、逐行发送的重复日志

你已经给PAPERTRAIL_LOGGER配置了additivity="false",可以排除日志向上传递给根logger绑定的其他appender导致重复的可能。

解决方法

在PAPERTRAIL appender的配置中新增<throwableExcluded>true</throwableExcluded>配置项,显式关闭appender自动拆分、单独发送异常栈的逻辑——你已经在suffixPattern中通过%ex{full}配置了完整异常输出,因此不会丢失任何异常栈信息。

修改后的appender配置如下:

<appender name="PAPERTRAIL" class="ch.qos.logback.classic.net.SyslogAppender">
    <syslogHost>[HOST]</syslogHost>
    <port>[PORT]</port>
    <facility>user</facility>
    <!-- 关闭自动拆分发送异常栈的逻辑 -->
    <throwableExcluded>true</throwableExcluded>
    <suffixPattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] %clr(%5p) KOCH --- %ex{full}</suffixPattern>
</appender>
效果验证

配置修改重启应用后,syslog服务端只会收到一条符合你自定义格式、携带完整异常栈的日志,不会再出现逐行拆分的重复异常栈日志。

内容的提问来源于stack exchange,提问作者Mathias Hillmann

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 17:01:02