问题描述
我正在使用dropwizard 1.3.X,并尝试将在servlet过滤器中生成的唯一关联ID附加到访问日志中。
我尝试了几种方法,但是我的访问日志仍然像这样
127.0.0.1 - - [20/Aug/2020:18:15:56 +0000] "GET /v1/ HTTP/1.1" 404 43 "-" "RxNetty Client" 12
我是否可以以某种方式覆盖dropwizard的默认日志记录并从标头附加自定义属性?
我查看了Here提供的解决方案,但是它似乎已经过时了,RequestLogFactory现在是一个接口。我不确定实施是否正确。
我的Yaml配置文件如下:
server:
type:
applicationContextPath: /
adminContextPath: /
connector:
type:
port:
logging:
level: INFO
appenders:
- type: console
threshold: ALL
target: stdout
logFormat: "%d{dd/MMM/yyyy:HH:mm:ss} [%thread] %X{Correlation-ID} %-5level %logger{36} - %msg%n"
解决方法
我们在此处以类似的要求覆盖了请求日志(我们还从日志中过滤掉了某些请求,并且代码在kotlin中而不是Java,fwiw中):https://github.com/trib3/leakycauldron/blob/main/server/src/main/kotlin/com/trib3/server/config/dropwizard/FilteredLogbackAccessRequestLogFactory.kt
然后我们通过指定在dropwizard配置中将其激活
server:
requestLog:
type: filtered-logback-access