我正在寻找以自定义方式打印日志。
例如,
目前我们有以JSON形式的日志结构,
{
"timeMillis" : 1488791217953,
"thread" : "restartedMain",
"level" : "DEBUG",
"loggerName" : "org.springframework.jdbc.datasource.DriverManagerDataSource",
"message" : "hello world",
"endOfBatch" : false,
"loggerFqcn" : "org.apache.commons.logging.impl.SLF4JLocationAwareLog",
"threadId" : 17,
"threadPriority" : 5
}
现在我发现,还有几个字段仍然丢失,这对我来说很重要,
预期的JSON同样如下:
{
"timeMillis" : 1488791217953,
"thread" : "restartedMain",
"level" : "DEBUG",
..................
"file" : "p1.pck.HelloWorld.java",
"line" : "190",
"application-id" : "101",
"logged in user id " : "199",
"etc" : "etc"
..................
"threadPriority" : 5
}
注意:日志配置文件log4j2.yml
具有以下配置
JsonLayout:
propertiesAsList: true
答案 0 :(得分:0)
您希望包含log4j-web工件以在日志中获取上下文数据 -
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-web</artifactId>
<version>2.8.2</version>
</dependency>
另外,您可能会发现我创建的工件很有用[extended-jsonlayout]。它允许您通过实现一个简单的接口,并在类路径中包含jar,将其他信息添加到json日志消息中。你可以在这里查看 -
https://github.com/savantly-net/log4j2-extended-jsonlayout