Java 使用syslog appender和RFC5424的Log4j2
当我尝试向远程Linux系统日志写入一些消息时,我使用带有appender syslog和format=RFC5424的log4j2以及BSD。我的配置文件如下:Java 使用syslog appender和RFC5424的Log4j2,java,linux,log4j2,syslog,Java,Linux,Log4j2,Syslog,当我尝试向远程Linux系统日志写入一些消息时,我使用带有appender syslog和format=RFC5424的log4j2以及BSD。我的配置文件如下: <?xml version="1.0" encoding="UTF-8"?> <Configuration status="warn" name="MyApp" packages=""> <Appenders> <Syslog name="bsd
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="warn" name="MyApp" packages="">
<Appenders>
<Syslog name="bsd" host="9.115.114.133" port="514" protocol="UDP" facility="local5"/>
<Syslog name="RFC5424" format="RFC5424" host="9.115.114.133"
protocol="UDP" appName="MyApp" includeMDC="true"
facility="LOCAL5" enterpriseNumber="18060" newLine="true"
messageId="Audit" id="App"/>
</Appenders>
<Loggers>
<Logger name="test.main" level="warn">
<AppenderRef ref="RFC5424"/>
</Logger>
<Root level="error">
<AppenderRef ref="bsd"/>
</Root>
</Loggers>
当我运行一个测试程序时,我总是得到如下错误:
原因:java.lang.IllegalArgumentException:未提供结构化id名称
位于org.apache.logging.log4j.message.structuredataid.(structuredataid.java:92)
位于org.apache.logging.log4j.core.layout.Rfc5424Layout.(Rfc5424Layout.java:139)
位于org.apache.logging.log4j.core.layout.rfc542layout.createLayout(Rfc5424Layout.java:657)
位于org.apache.logging.log4j.core.appender.SyslogAppender.createAppender(SyslogAppender.java:133)
... 20多
2014-11-10 03:21:46252为Appenders中的Syslog返回了错误Null对象。
2014-11-10 03:21:46267错误无法为logger test.main找到appender RFC5424
我怎样才能摆脱这个错误呢?谢谢 您需要包括
mdcId
属性: