Yun*_*eng 2 java linux syslog log4j2
当我尝试将一些消息写入远程Linux系统日志时,我使用log4j2和appender syslog以及format = RFC5424,而BSD.My配置文件如下:
<?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>
Run Code Online (Sandbox Code Playgroud)
当我运行一个测试程序,我总是得到错误如下:java.lang.IllegalArgumentException异常:由没有造成结构性ID名称在org.apache.logging.log4j.message.StructuredDataId供给(StructuredDataId.java:92).在org.apache.logging.log4j.core.layout.Rfc5424Layout.(Rfc5424Layout.java:139)在org.apache.logging.log4j.core.layout.Rfc5424Layout.createLayout(Rfc5424Layout.java:657)在org.apache. logging.log4j.core.appender.SyslogAppender.createAppender(SyslogAppender.java:133)... 20更多
2014-11-10 03:21:46,252错误Null对象为Appenders中的Syslog返回 2014-11-10 03:21:46,267错误无法找到记录器test.main的appender RFC5424
我怎么能摆脱这个错误?谢谢.
您需要包含该mdcId属性:
<Syslog name="RFC5424" format="RFC5424" host="9.115.114.133"
protocol="UDP" appName="MyApp" mdcId="mdc" includeMDC="true"
facility="LOCAL5" enterpriseNumber="18060" newLine="true"
messageId="Audit" id="App"/>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3981 次 |
| 最近记录: |