使用dropwizard时,将自定义标头附加到访问日志

问题描述

我正在使用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

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...