java - 如何使用 jbpm/wildfly 中的元数据字段以 jsonformat 打印日志?
问题描述
我使用的是 jbpm 7.37 标准版,带有 WildFly Full 14.0.1.Final(WildFly Core 6.0.2.Final)。我正在使用记录器类(org.slf4j.LoggerFactory,org.slf4j.Logger)来打印日志。我已启用自定义 REST 端点。我正在使用 Jersey REST api。我正在制作自定义 jar 文件,其中我编写了自定义代码(自定义 REST API)并将这个 jar 文件部署在 kie-server.war 文件中。我想为我的自定义类打印 json 格式的日志。如下所示:
{"timestamp":"2021-03-04T05:27:07.063Z",
"service":"demo",
"level":"error/info",
"message":"Errormessage/Info message",
"metadata":{"requestId":"somerequestid","sessionId":"somesif"}
}
但是我可以使用以下命令以 json 格式打印日志:
sudo bash jboss-cli.sh -c "/subsystem=logging/json-formatter=json:com.demo.add(exception-output-type=formatted, pretty-print=true, meta-data={service=demo})"
但这给了我如下输出:
{"timestamp":"2021-03-04T05:27:07.063Z",
"service":"demo",
"level":"error/info",
"message":"Errormessage/Info message",
}
无法打印“元数据”:{“requestId”:“somerequestid”,“sessionId”:“somesrequestid”}
字段 requestId 和 sessionId 具有我必须从 http 请求中获取的运行时值。来自 @HeaderParam("requestId"),@HeaderParam("sessionId") 并且需要附加每个响应。
当我在我的回复中附加这些值时,它会显示在“消息”字段中,如下所示。
{"timestamp":"2021-03-04T05:27:07.063Z",
"service":"demo",
"level":"error/info",
"message":"data{"requestId":"somerequestId","sessionId":"somesessionId"}",
}
如何将每个请求的 requestId 和 sessionId 的值打印为 "metadata":{"requestId":"somerequestid","sessionId":"somesid"} ?
解决方案
推荐阅读
- python - 虽然循环无法正常运行
- c++ - 找到包含 200000+ 个元素的 2 个数组元素的最小乘积的最快方法
- c++ - 在公式中分配变量时会发生什么?
- javascript - 在 setMinimumSize 之后将 useContentSize 设置为 undefined
- google-drive-api - 来自 Google Drive v3 的 modifiedTime 属性的延迟
- google-sheets - 将 URL 中的链接+锚点导入 1 行
- centos7 - 在 CentOS7 上安装 PyHDF
- interrupt - 在 RISC-V CLINT 矢量模式下,同步异常处理程序是否与 ID=0 中断处理程序(用户软件中断)相同?
- javascript - 如何阻止 jquery .append() 随机化元素的顺序?
- laravel - 在 Laravel 注册中添加包含文件的新字段