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

Spring Boot集成Sleuth无TraceId输出问题求助

排查Spring Cloud Sleuth无法输出traceId/spanId的问题

核心问题:版本不兼容

你当前使用的Spring Boot 3.0.6与Spring Cloud 2021.0.1版本不匹配:

  • Spring Cloud 2021.0.x(Jubilee)仅支持Spring Boot 2.7.x系列
  • Spring Boot 3.0.x需要搭配Spring Cloud 2022.0.x(Kilburn)系列版本

版本不匹配会导致Sleuth核心组件无法正常初始化,进而无法生成traceId和spanId。

修复步骤

1. 调整Spring Cloud版本

修改build.gradle中的springCloudVersion为适配Spring Boot 3.0.x的稳定版本:

ext {
    set('springCloudVersion', "2022.0.4")
}

同步依赖后,确保spring-cloud-starter-sleuth能加载适配Spring Boot 3的版本。

2. 配置日志格式

Spring Boot 3默认日志输出格式不包含traceId和spanId,需显式配置。在application.yml或application.properties中添加:

YAML格式:

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

Properties格式:

logging.pattern.console=%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level [%spring.application.name,%X{traceId:-},%X{spanId:-}] %logger{36} - %msg%n

其中%X{traceId:-}表示如果traceId不存在则显示空值,格式完全匹配你预期的[${applicationName}, ${traceId}, ${spanId}]。

3. 验证依赖加载

执行./gradlew dependencies命令,检查是否存在以下核心依赖:

  • org.springframework.cloud:spring-cloud-starter-sleuth
  • io.micrometer:micrometer-tracing-bridge-brave(Spring Cloud 2022.x版本会自动引入,是Sleuth实现链路追踪的底层依赖)

4. 测试验证

重启应用,调用/hello接口,查看控制台日志,应能看到包含应用名、traceId、spanId的输出内容。

额外排查点

  • 检查日志框架冲突:如果项目引入了log4j2等非默认日志框架,需额外配置Sleuth的日志集成(Spring Boot默认用logback,无需额外配置)
  • 查看应用启动日志:若存在Sleuth相关报错,根据报错信息进一步排查组件初始化问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 13:12:57