gpt4 book ai didi

java - 使用 log4j JsonLayout 记录 JSON 对象

转载 作者:行者123 更新时间:2023-12-04 03:12:06 25 4
gpt4 key购买 nike

嘿,我有一个使用 log4j 和 slf4j 进行日志记录的项目。
我将日志的布局配置为JsonLayout。
是否可以在保持 json 格式的同时记录 JSON 对象。

例如 :

    JsonObject object = new JsonObject();
object.addProperty("ID", 3);
LOGGER.info("{}", object);

将输出:
{
"timeMillis" : 1496579005079,
"thread" : "main",
"level" : "INFO",
"loggerName" : "Logger",
**"message" : "{\"ID\":3}",**
"endOfBatch" : false,
"loggerFqcn" : "org.apache.logging.slf4j.Log4jLogger",
"threadId" : 1,
"threadPriority" : 5
}

虽然我需要它来输出这个:
{
"timeMillis" : 1496579005079,
"thread" : "main",
"level" : "INFO",
"loggerName" : "Logger",
**"message" : {"ID":3},**
"endOfBatch" : false,
"loggerFqcn" : "org.apache.logging.slf4j.Log4jLogger",
"threadId" : 1,
"threadPriority" : 5
}

最佳答案

有一个 objectMessageAsJsonObject 应该为您执行此操作。
在您的 log4j2.xml 中:

 <RollingFile name="json-log" fileName="build/log"
filePattern="/var/log/.%d{yyyy-MM-dd}.log">
<JSONLayout objectMessageAsJsonObject="true"/>
</RollingFile>

关于java - 使用 log4j JsonLayout 记录 JSON 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44354646/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com