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

Spring Boot 3中@KafkaListener日志缺失traceId/spanId问题求助

在Spring Boot 3中实现日志携带traceId/spanId的解决方法

问题背景

Spring Boot 2依赖Sleuth可实现日志自动携带traceId,但Spring Boot 3已移除Sleuth,官方推荐使用micrometer-tracing替代。已添加以下依赖:

<dependency>
    <groupId>io.micrometer</groupId>
    <artifactId>micrometer-tracing</artifactId>
    <version>1.3.0</version>
</dependency>
<dependency>
    <groupId>io.micrometer</groupId>
    <artifactId>micrometer-tracing-bridge-brave</artifactId>
    <version>1.3.0</version>
</dependency>

并在application.properties配置:

spring.kafka.listener.observation-enabled=true
logging.pattern.console="%d{yyyy-MM-dd HH:mm:ss.SSS} %5p [${spring.application.name:-},%X{traceId:-},%X{spanId:-}] 0 --- [%15.80t] %-40.40logger{39} : %msg%n"

但日志中仍未出现traceId和spanId。

解决步骤

1. 优化依赖配置

Spring Boot 3.x建议通过Starter管理依赖,避免版本兼容问题,替换原有依赖为:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
    <groupId>io.micrometer</groupId>
    <artifactId>micrometer-tracing-bridge-brave</artifactId>
</dependency>

说明:micrometer-tracing会被micrometer-tracing-bridge-brave间接引入,无需单独声明;spring-boot-starter-actuator是观测能力的基础依赖,缺失会导致追踪功能无法正常初始化。

2. 修正日志格式

原日志配置的首尾双引号会导致%X{traceId}等变量无法被正确解析,同时冗余的0会破坏日志格式,修改为:

logging.pattern.console=%d{yyyy-MM-dd HH:mm:ss.SSS} %5p [${spring.application.name:-},%X{traceId:-},%X{spanId:-}] --- [%15.80t] %-40.40logger{39} : %msg%n

3. 完善Kafka观测配置

仅开启消费者观测不足以覆盖全链路,需同时启用生产者观测:

spring.kafka.producer.observation-enabled=true

4. 确保观测上下文传播

  • Web请求场景:默认会自动创建trace上下文,无需额外配置;
  • 异步/自定义线程池场景:需手动传递观测上下文,可通过Observation包裹业务逻辑:
Observation.createNotStarted("custom-task", observationRegistry)
           .observe(() -> {
               // 你的业务代码
           });

5. 检查全局观测开关

确保未手动关闭观测功能,以下配置需删除或设为true:

management.observation.enabled=true

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 10:04:56