微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

jboss 自定义 json 日志格式父键中的 MDC 值

如何解决jboss 自定义 json 日志格式父键中的 MDC 值

我有以下 jboss cli 日志格式..

/subsystem=logging/json-formatter=json_format:add(exception-output-type=formatted,key-overrides=[timestamp="time"],Meta-data=[@version=1])
/subsystem=logging/console-handler=CONSOLE:write-attribute(name="named-formatter",value="json_format")

这是有效的。 它正在打印日志,如 ..

{
   "@timestamp":"2021-03-29T11:05:17.1Z","sequence":267,"loggerClassName":"org.slf4j.impl.Slf4jLogger","loggerName":"com.xyz.keycloak.XYZClient","level":"ERROR","message":"javax.websocket.DeploymentException: Invalid response code 503","threadName":"Thread-146","threadId":193,"mdc":{
      "user_id":"90dee27b-4f40-44ce-a93f-35c7a877d1e0","x-request-id":"a6d415c4-7953-4773-b9cd-3d9a1c867432","client_id":"login-app"
   },"ndc":"","hostName":"rainier-keycloak-0","processName":"jboss-modules.jar","processId":674,"@version":"1"
}

这里我想将 mdc 值提取到外面..它应该看起来像..

{
   "@timestamp":"2021-03-29T11:05:17.1Z","user_id":"90dee27b-4f40-44ce-a93f-35c7a877d1e0","client_id":"login-app","@version":"1"
}

有没有办法让 json 格式的日志带有 MDC 值,而没有 'mdc' 键..

我也尝试过使用 patternFormatter

/subsystem=logging/console-handler=CONSOLE:write-attribute(name="formatter",value="{\"time\": \"%d{yyyy-MM-dd HH:mm:ss,SSS}\",\"level\": \"%-5p\",\"tenant_id\": \"%X{tenant}\",\"x-request-id\": \"%X{x-request-id}\",\"user-uuid\" : \"%X{user_id}\",\"client_id\": \"%X{client_id}\",\"loggerName\": \"%c\",\"threadName\": \"%t\",\"message\": \"%s%E\"}%n")

但它没有提供在一行中获取所有堆栈跟踪的选项..

我需要将堆栈跟踪都打印在一行中,就像 json 格式化程序一样。并且希望在父键中具有 mdc 值。 有什么办法可以做到这一点?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?