如何解决以JSON格式在Spring Boot编码中访问logstash-logback中的请求头键
我的用例是我需要在 spring boot 应用程序中打印 tomcat 服务器的访问日志。 日志应该是带有自定义字段名称的 JSON 格式。 像这样:
{
"_type": "access","_timestamp": "2020-12-14 09:04:51.124","_url":"/api/v2/activities/search","_method": "GET","_response_code": 200,"_processing_time_in_ms":0.004,"referer":"https://google.com","user_agent":"XYZ","_level": "info
}
现在我在附加到控制台的 logback.xml 中使用 net.logstash.logback.encoder.AccessEventCompositeJsonEncoder 编码器。
我已经成功获得了其他字段的值,例如 _response_code : "%statsCode 通过这样做。
但是,如何在我的自定义 json 对象中直接从 request_headers 对象访问引用?
解决方法
将 logstash-logback-encoder's pattern provider 与 logback's conversion word for request headers(%i
或 %header
)一起使用。
logstash-logback-encoder 的 README.md(上面链接)中给出的示例显示了如何做到这一点。复制到这里供参考...
<encoder class="net.logstash.logback.encoder.AccessEventCompositeJsonEncoder">
<providers>
<pattern>
<pattern>
{
"custom_constant": "123","tags": ["one","two"],"remote_ip": "%a","status_code": "%s","elapsed_time": "%D","user_agent": "%i{User-Agent}","accept": "%i{Accept}","referer": "%i{Referer}","session": "%requestCookie{JSESSIONID}",...
}
</pattern>
</pattern>
</providers>
</encoder>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。