我对log4j2在Mac上的SyslogAppender (OSX10.9.2)有个问题。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不正确地把所有东西都分割掉了。发件人不应该是日期字符串的第一部分,并且消息不应该是消息的合并的其余部分。
我找不到一种方法来更改SyAdd.1-Appender的格式字符串,因为在其中添加一个PatternLayout元素只是被忽略了。我还研究了这里提出的LoggerFields解决方案:log4j2 - Syslog appender and PatternLayout,这只会使消息元素进一步复杂化,而不会解决错误发件人的问题。
有没有人知道如何调整log4j2的SyslogAppender,以便将格式正确的消息发送给OSX10.9.2的syslog?
发布于 2014-09-19 05:23:09
我建议将此作为log4j2 Jira问题跟踪器的特性请求:http://logging.apache.org/log4j/2.x/issue-tracking.html
https://stackoverflow.com/questions/25925199
复制相似问题