Closed youngledo closed 4 months ago
Spring Boot 3.1.5,对于logback版本为logback-classic-1.4.11,测试很久发现同样问题,引入mdc后反而打印不了traceId,新版获取mdc适配器换成 然后初始化是固定的LogbackMDCAdapter,所以最后又回到LogbackMDCAdapter没有用自定义的TtlMDCAdapter 我目前的方案是拷贝LogbackMDCAdapter文件至本地工程同名同路径,然后修改readWriteThreadLocalMap和readOnlyThreadLocalMap为TransmittableThreadLocal,然后可以实现效果,这样其实也就不需要这个jarl了,只需要重写LogbackMDCAdapter,但是不够优雅,毕竟修改的是日志实现,不如这个mdc修改slf4j优雅,目前无奈之举吧
跟我的方案是一样的,这样做其实很挫。正确的做法是通过SPI去扩展,但是因为目前够用也没啥问题,先这样。
该版本新增了很多方法,导致没有实现方法,启动报错
备注:我使用的是Spring Boot 3.2版本,升级后logback、slfj版本也都升级了,导致失效。
翻看logback-classic源码,发现1.2.11版本下是这样拿Map的: 但是在高版本是这样的,所以失效了: