Spring Boot 日志中缺少 SpanID 和 TraceID

时间:2021-06-15 10:53:40

标签: spring-boot spring-cloud spring-cloud-sleuth

例如,在包含 Spring Cloud Sleuth 之前,人们会在他们的日志中得到类似的信息

2016-02-11 17:12:45.404  INFO [my-service-id,,] 85184 --- [nio-8080-exec-1] com.example.MySimpleComponentMakingARequest 

在应用程序名称附近有 2 个逗号(这是 traceID 和 spanID 出现的地方)。但我的日志最初是这样的

2016-02-11 17:12:45.404  INFO 85184 --- [nio-8080-exec-1] com.example.MySimpleComponentMakingARequest 

为了在我的日志中获取应用程序名称,我在 application.properties 中编写了以下代码

logging.pattern.level= %5p [${spring.application.name}] 

现在我的日志看起来像这样(如果您观察到,它在应用程序名称旁边没有 2 个逗号)

2016-02-11 17:12:45.404  INFO [my-service-id] 85184 --- [nio-8080-exec-1] com.example.MySimpleComponentMakingARequest

即使在包含 Sleuth 之后,我的日志看起来也是这样,并且 SpanID 和 TraceID 不存在。我是 Spring Boot 的新手,请告诉我我做错了什么来帮助我。

1 个答案:

答案 0 :(得分:0)

Sleuth 使用 logging.pattern.level 注入这些详细信息。由于您覆盖了它,因此 Sleuth 会放入其中的详细信息不存在。

如果你没有设置属性,你应该在没有 Sleuth 的情况下看到这个:

2016-02-11 17:12:45.404  INFO 85184 --- [nio-8080-exec-1] ...

如果你包括侦探:

2016-02-11 17:12:45.404  INFO [my-service-id,,] 85184 --- [nio-8080-exec-1] ...

如果这不是您遇到的行为,请检查您的类路径,并确保 Sleuth 存在/不存在,并且您使用的是正确的版本。

请参阅此答案以了解后台发生的情况:How spring cloud sleuth adds tracing information to logback log lines