这个问题已经问过几次了,有一些答案,但没有一个适合我的要求,因为答案是针对控制台附加器或文件附加器。
格式化程序配置这两个附加器都是通过独立或域xml.
驱动的配置。但是,我使用的是json /logstash formatter
。
我的问题是,发送到stdout
或stderr
的消息被Redhat jboss eap
Package ,日志级别为INFO(与级别无关),并且堆栈跟踪的每一行都被视为单独的JSON块。
由于这个logstash解释所有的信息,而不是警告或错误,它看起来非常丑陋,很难在kibana解释。
jboss服务器日志的代码段。
{
"timestamp": "2020-02-19T13:19:18.743Z",
"sequence": 249,
"loggerClassName": "org.jboss.logmanager.Logger",
"loggerName": "**stdout**",
"level": "**INFO**",
"message": "2020-02-19T14:19:18.000743+0100 [DBQueue_3]**ERROR****com.uuapp.data**- Invalid operation name in participant message \"Pmsg:Id=0,Sender=0,Consumer=0,ActIndex=0,Oper=null,Flag=0, Priority=8\"",
"threadName": "DBQueue_3",
"threadId": 530,
"mdc": {
},
"ndc": "",
"hostName": "uu-app-18934",
"processName": "jboss-modules.jar",
"processId": 22061
}
有没有办法绕过这个恼人的特性,让jboss使用从logback的控制台附加器发送的日志?至少把stacktrace合并到一个json块中?
请注意,该应用程序使用logback。我知道logback有json格式化程序,我可以使用,但我的手被束缚,因为该应用程序是一种cots产品开发的java和使用3pp jar,既没有更新使用json格式化程序,也不允许覆盖战争。
所以,如果有什么要做的,就必须在服务器端完成。
任何帮助都是感激不尽的。
1条答案
按热度按时间gmxoilav1#
尝试在日志子系统下的Jboss服务器的standalone.xml中添加以下代码。这是因为log4j2.xml消息是由Jboss自己的模式 Package 的。