我是 SLF4J 和 Logback 的新手,我正在尝试记录以下 API 的每个请求和响应link https://pivotal.io/de/application-transformation-recipes/observability/request-response-logging-in-spring-boot。这是配置
<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 是实现的自定义类JsonFactoryDecorator
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)