我需要将事件记录到系统日志中。我使用 lo4j2 和 syslog appender。我的 appenders 阻塞log4j2.xml
看起来像这样:
<appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</Console>
<Syslog name="syslog" host="localhost" port="514" protocol="UDP" charset="ISO-8859-1">
</Syslog>
<RollingFile name="AppLog" fileName="/var/log/app.log"
filePattern="/var/log/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log.gz">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
<Policies>
<TimeBasedTriggeringPolicy/>
</Policies>
</RollingFile>
</appenders>
如您所见,我有一个带有特定 PatternLayout 的 Console appender 和 RollingFile appender。我想为 Syslog appender 使用相同的 PatternLayout。但是,syslog 中的日志消息似乎总是使用预定义的布局。我尝试执行以下操作:
<Syslog name="syslog" host="localhost" port="514" protocol="UDP" charset="ISO-8859-1">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</Syslog>
但这没有任何效果。系统日志消息仍然具有相同的预定义格式。
如何确定进入 syslog 的日志消息的格式?