好的,这个线程需要更新一下,因为大多数答案都很旧。所有现代 Java 日志库都支持开箱即用的 json 布局。使用 log4j2,您甚至不需要任何额外的库,只需要类路径中的 jackson,您很可能已经拥有了。
当然,您确实需要使用 json 布局并明确指定它。请参阅此处的 log4j2 示例。请注意,对于您选择的日志收集器,默认布局可能无法按预期工作。例如,我使用 FileBeat,它要求每行生成一个日志。Log4j2 有一个参数元组:
与 eventEol=true 和 compact=true 一起使用可获取每行一条记录。
我的附加程序如下所示:
<Appenders>
<Console name="STDOUT" target="SYSTEM_OUT">
<ThresholdFilter level="ERROR" onMatch="DENY" onMismatch="ACCEPT"/>
<JsonLayout complete="false" compact="true" eventEol="true"/>
</Console>
<Console name="STDERR" target="SYSTEM_ERR">
<ThresholdFilter level="ERROR" onMatch="ACCEPT" onMismatch="DENY"/>
<JsonLayout complete="false" compact="true" eventEol="true"/>
</Console>
</Appenders>
Run Code Online (Sandbox Code Playgroud)
如果这还不够,你还可以看看这个 repo:https : //github.com/savoirtech/slf4j-json-logger
我想这就是您正在寻找的: http://jsontools.berlios.de/articles/faq/what-is-in-log4j.html
我以前没有使用过这个,但在我提到的页面上说:
它包含一个格式化程序,用于将日志条目格式化为 JSON 格式。您可以将其安装在日志系统中,然后使用核心工具解析日志流。
| 归档时间: |
|
| 查看次数: |
17280 次 |
| 最近记录: |