You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Log4j2与SLF4J MDC兼容问题:Finatra中traceID日志无法输出

问题:Finatra集成Log4J2时TraceID日志缺失

我在使用Finatra框架时尝试开启traceID日志,但Log4J2的输出中始终没有相关内容。

Finatra支持SLF4J MDC,SLF4J MDC理论上兼容Log4J(包括Log4J2),Log4J2本身也支持MDC和SLF4J,但实际日志构建时,MDC数据始终为空。

测试用Logback作为日志实现时,MDC日志可以正常输出(它依赖SLF4J MDC),但我必须使用Log4J2,无法更换日志实现。

解决办法

问题根源在于Finatra的LoggingMDCFilter会将MDCAdapter替换为基于Finagle Contexts实现的自定义FinagleMDCAdapter,这个自定义实现和Log4J2的MDC机制不兼容,导致TraceID无法正常输出。

只需移除LoggingMDCFilter,即可让Log4J2正常读取SLF4J MDC中的TraceID数据。

内容的提问来源于stack exchange,提问作者brisssou

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 18:15:41