Log4j2 Syslog appender(TCP protocol) sending exception stacktrace in multiple lines and showing wrong log levels

一笑奈何 提交于 2019-12-22 09:15:02

问题


I am using log4j2 and syslog appender. I am using TCP as protocol and Kiwi syslog server. While sending the error messages, the exception stacktrace is being sent over TCP in multiple lines, each line in one one packet. The first line of the stacktrace is shwoing correct log level in Kiwi syslog server, but the subsequent of the same stacktrace is shwoing wrong log level and facility. This is not happening in case of UDP protocol.

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

Another question, regarding mdc@1000, what is this? why this is getting printed? I have added includeMDC=true in log4j2 config file.

<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>

来源:https://stackoverflow.com/questions/28096978/log4j2-syslog-appendertcp-protocol-sending-exception-stacktrace-in-multiple-li

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!