Log4j2 Syslog Appender(TCP 协议)在多行中发送异常堆栈跟踪并显示错误的日志级别

2024-01-26

我正在使用 log4j2 和 syslog 附加程序。我使用 TCP 作为协议和 Kiwi 系统日志服务器。发送错误消息时,异常堆栈跟踪通过 TCP 分多行发送,每一行位于一个数据包中。堆栈跟踪的第一行显示 Kiwi syslog 服务器中正确的日志级别,但同一堆栈跟踪的后续行显示错误的日志级别和设施。在 UDP 协议中不会发生这种情况。

01-22-2015  10:25:40    Local0.Error    10.74.224.251   1 2015-01-23T00:20:11.473+05:30 ABC-PC - - [mdc@1000 category="com.test.dataSender" exception="" thread="ForkJoinPool-57-worker-1"] [8ef587c9-5605-42d3-88ff-0d865cf6e510]: Failed to add management service instance 'aa', Cause: aa
01-22-2015  10:25:39    Local7.Debug    10.74.224.251   " thread="ForkJoinPool-57-worker-1"] [8ef587c9-5605-42d3-88ff-0d865cf6e510]:  Unknown Host : aa
01-22-2015  10:25:39    Local7.Debug    10.74.224.251      at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:398)
01-22-2015  10:25:39    Local7.Debug    10.74.224.251      at java.util.concurrent.ForkJoinPool.work(ForkJoinPool.java:646)
01-22-2015  10:25:39    Local7.Debug    10.74.224.251      at java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:784)
01-22-2015  10:25:39    Local7.Debug    10.74.224.251      at java.util.concurrent.ForkJoinWorkerThread.execTask(ForkJoinWorkerThread.java:604)
01-22-2015  10:25:39    Local7.Debug    10.74.224.251      at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:334)
01-22-2015  10:25:39    Local7.Debug    10.74.224.251      at java.util.concurrent.RecursiveTask.exec(RecursiveTask.java:93)
01-22-2015  10:25:39    Local7.Debug    10.74.224.251      at com.test.data.core.mapreduce.MapReduceTask.compute(MapReduceTask.java:26)
01-22-2015  10:25:39    Local7.Debug    10.74.224.251      at com.test.data.core.datasource.DatasourceAdder.map(DatasourceAdder.java:21)
01-22-2015  10:25:39    Local7.Debug    10.74.224.251      at com.test.data.core.datasource.DatasourceAdder.map(DatasourceAdder.java:70)
01-22-2015  10:25:39    Local7.Debug    10.74.224.251      at com.test.data.um.datasource.UMDatasourceService.addDatasources(UMDatasourceService.java:58)
01-22-2015  10:25:39    Local7.Debug    10.74.224.251      at com.test.data.um.datasource.UMDatasourceServiceFacadeImpl.addDatasources(UMDatasourceServiceFacadeImpl.java:211)
01-22-2015  10:25:39    Local7.Debug    10.74.224.251      at com.test.data.um.datasource.UMDatasourceServiceFacadeImpl.discoverDatasources(UMDatasourceServiceFacadeImpl.java:248)
01-22-2015  10:25:39    Local7.Debug    10.74.224.251      at java.net.InetAddress.getByName(InetAddress.java:1048)
01-22-2015  10:25:39    Local7.Debug    10.74.224.251      at java.net.InetAddress.getAllByName(InetAddress.java:1098)
01-22-2015  10:25:39    Local7.Debug    10.74.224.251      at java.net.InetAddress.getAllByName(InetAddress.java:1162)
01-22-2015  10:25:39    Local7.Debug    10.74.224.251      at java.net.InetAddress.getAllByName0(InetAddress.java:1246)
01-22-2015  10:25:39    Local7.Debug    10.74.224.251      at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1293)
01-22-2015  10:25:39    Local7.Debug    10.74.224.251      at java.net.InetAddress$1.lookupAllHostAddr(InetAddress.java:901)
01-22-2015  10:25:39    Local7.Debug    10.74.224.251      at java.net.Inet4AddressImpl.lookupAllHostAddr(Native Method)
01-22-2015  10:25:39    Local0.Error    10.74.224.251   1 2015-01-23T00:20:11.471+05:30 ABC-PC [OnCommand API Services] - - [mdc@1000 category="com.test.data.um.datasource.UMDatasourceServiceFacadeImpl" exception="java.net.UnknownHostException: aa

另一个问题,关于mdc@1000, 这是什么?为什么要打印这个?我已经添加了includeMDC=true在 log4j2 配置文件中。

<Syslog name="syslogAppender" 
        host="${sys:syslog.host}" port="${sys:syslog.port}" protocol="${sys:syslog.protocol}" 
        appName="${serviceName}" enabled="${sys:syslog.enabled}" format="RFC5424" 
        newLine="true" includeMDC="true" mdcId="mdc" ignoreExceptions="true" 
        enterpriseNumber="1000">
   <LoggerFields>
      <KeyValuePair key="thread" value="%t" />
      <KeyValuePair key="category" value="%c" />
      <KeyValuePair key="exception" value="%ex{full}" />
   </LoggerFields>
</Syslog>

None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Log4j2 Syslog Appender(TCP 协议)在多行中发送异常堆栈跟踪并显示错误的日志级别 的相关文章

随机推荐