【问题标题】:Log4j2 Syslog Appender formatting on MacMac 上的 Log4j2 Syslog Appender 格式
【发布时间】:2014-09-19 01:57:58
【问题描述】:

我在 Mac (OSX 10.9.2) 上遇到 log4j2 的 SyslogAppender 问题。 log4j2 发送到 syslog 的默认格式导致消息解析不正确。我的配置:

<Syslog name="Syslog" host="localhost" port="514"
 protocol="UDP" format="RFC5424" appName="MyApp" id="log4j2-test"
 mdcIncludes="Priority,Logger,Exception,Message" newLine="true"> 
</Syslog>

当我跑步时:

syslog -F raw

我得到以下信息:

[ASLMessageID 1291756] [Time 1411090836] [TimeNanoSec 0] [Level 6] [PID 4294967295] [UID 4294967294] [GID 4294967294] [ReadGID 80] [Host 1] [Sender 2014-09-19T01] [Facility local0] [Message 40:36.481Z Mario.local MyApp - - - Hello, world!]

没有原始格式的相同消息显示如下:

Sep 19 09:40:36 1 2014-09-19T01[4294967295] <Info>: 40:36.481Z Mario.local MyApp - - - Hello, world!

根据日期字符串在两个位置之间的拆分方式,log4j2 SyslogAppender 使用的默认格式如下:

%d <host> <app> - - - %m

而且 syslog 正在错误地拆分所有内容。发件人不应该是日期字符串的第一部分,消息不应该是消息的其余部分。

我找不到更改 SyslogAppender 格式字符串的方法,因为在其中添加 PatternLayout 元素会被忽略。我还研究了此处提出的 LoggerFields 解决方案:log4j2 - Syslog appender and PatternLayout,这只会使 Message 元素进一步复杂化,而不会解决发送者不正确的问题。

有谁知道如何调整 log4j2 的 SyslogAppender 以便将格式正确的消息发送到 OSX 10.9.2 的 syslog?

【问题讨论】:

    标签: macos syslog log4j2


    【解决方案1】:

    我建议在 log4j2 Jira 问题跟踪器上将此作为功能请求提出:http://logging.apache.org/log4j/2.x/issue-tracking.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多