log4j2 syslog appender截断日志消息中的第一个字



我使用log4j2在log4j2.xml文件中使用syslog appender将日志发送到syslog。我面临的问题是日志消息中的第一个单词被截断了。您可以在syslog appender RFC 5424和BSD中使用两种格式。当我使用BSD时,消息中的第一个单词就会被截断。当我使用RFC 5424时,会打印出太多不需要的信息。这是我的log4j2.xml文件。在这种情况下,我使用BSD格式,因为它默认为BSD。我不知道它为什么或如何截断第一个单词。

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="info">
<Appenders>
<Console name="LogToConsole" target="SYSTEM_OUT">
<PatternLayout pattern="%d{[yyyy-MM-dd HH:mm:ss+SS:SS]} [%-5p] %m%n"/>
</Console>
<Syslog name="syslogAppender" host="localhost" port="514" protocol="UDP" 
facility="LOCAL0" id="myApp" />
</Appenders>
<Loggers>
<Root level="ALL">
<AppenderRef ref="syslogAppender"/>
<AppenderRef ref="LogToConsole" />
</Root>
</Loggers>
</Configuration>

日志文件中的输出:

[2021-04-09T18:01:02+00:00][info] unavailiblity window to station

预期输出:

[2021-04-09T18:01:02+00:00][info] Sending unavailiblity window to station

我不确定问题出在哪里。如果我使用RFC 5424,那么它会打印太多不需要的信息,我没有办法按照我想要的方式格式化它。使用RFC5424格式,它会产生以下输出:

[2021-04-09T15:52:37+00:00][info] 2021-04-09T15:52:37.912Z ip-172-31-28-58 /home/user 24253 - - Sending unavailability window to station

我想使用简单的格式。BSD格式只有在不截断第一个单词的情况下才适用。

感谢

PatternLayout是个问题,请使用任何其他布局,如RFC5424Layout等

最新更新