gpt4 book ai didi

java - 如何使用Logback以JSON方式登录?

转载 作者:行者123 更新时间:2023-12-02 09:37:04 27 4
gpt4 key购买 nike

我是 SLF4J 和 Logback 的新手,我正在尝试记录以下 API 的每个请求和响应 link 。这是配置

<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%requestURL | status code: %statusCode | bytes: %bytesSent | elapsed time: %elapsedTime | request-log: %magenta(%requestContent) | response-log: %cyan(%responseContent)</pattern>
</encoder>
</appender>
<appender-ref ref="STDOUT"/>
</configuration>

目前正在打印:

GET /api/request HTTP/1.1 | status code: 200 | bytes: 599 | elapsed time: 2630 | request-log:  | response-log {"key1":"field1","key2":"field2"}

我想记录类似的内容:

{
"url": "GET /api/request HTTP/1.1",
"status": 200,
"elapsed_time": 2630 ,
"response": {
"key1":"value1",
"key2":"value2"
}
}

最佳答案

这会起作用:

<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="net.logstash.logback.encoder.LogstashEncoder">
<jsonFactoryDecorator class="JsonLogDecorator"/>
<fieldNames>
<timestamp>timeStamp</timestamp>
<message>message</message>
<logger>logger</logger>
<thread>thread</thread>
<level>level</level>
<levelValue>[ignore]</levelValue>
<version>[ignore]</version>
<stackTrace>stackTrace</stackTrace>
</fieldNames>
<includeMdcKeyName>mdcKeyToInclude</includeMdcKeyName>
</encoder>
</appender>

JsonLogDecorator 是实现 JsonFactoryDe​​corator 的自定义类。

关于java - 如何使用Logback以JSON方式登录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57424249/

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