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

升级Spring Boot 3.0.2至3.4/3.5后,micrometer-tracing的traceId与spanId未出现在日志中

解决Spring Boot 3.4/3.5下Micrometer Tracing关联ID不显示的思路
  • 对齐Spring Cloud版本兼容性:Spring Boot 3.4对应Spring Cloud 2023.0.x(Leyton),3.5对应2024.0.x(Otter)。如果仅升级Spring Boot未同步升级Spring Cloud Gateway及配套依赖,版本不匹配会导致traceId/spanId无法正常注入日志,务必保证两者版本对应。

  • 验证MDC相关配置:Spring Boot 3.1+对Micrometer Tracing的配置逻辑做了调整,需确认以下配置项:

    • 显式声明management.tracing.enabled=true(默认虽为true,但显式配置可避免自动配置异常)
    • 检查management.tracing.mdc.enabled是否设为true,新版本中该配置可能默认关闭,需开启才能将traceId/spanId写入MDC
    • 确认management.tracing.propagation.type包含你使用的传播类型(如B3),保证上下文能正确传递
  • 检查日志格式配置:确保日志格式中包含%X{traceId}和%X{spanId}占位符。例如在application.yml中配置:

    logging:
      pattern:
        console: "%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg %X{traceId:-} %X{spanId:-}%n"
    

    若用logback配置文件,需保证<pattern>标签内包含这两个占位符,防止新版本自动配置覆盖自定义格式。

  • 排查WebFlux Filter执行顺序:Spring Cloud Gateway基于WebFlux,新版本可能调整了Filter执行顺序。确认TraceWebFilter等追踪相关Filter在日志Filter之前执行,确保traceId/spanId已写入MDC再输出日志。可通过调试或打印Filter顺序日志排查,必要时自定义Filter顺序。

  • 清理依赖冲突:升级Spring Boot后可能残留旧版本的micrometer-tracing或Spring Cloud依赖。执行mvn dependency:tree(Maven)或./gradlew dependencies(Gradle)查看依赖树,排除重复、版本不兼容的依赖,确保所有Micrometer Tracing相关依赖版本统一。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 17:22:36