Spring Boot 日志中缺少 SpanID 和 TraceID
Posted
技术标签:
【中文标题】Spring Boot 日志中缺少 SpanID 和 TraceID【英文标题】:SpanID and TraceID missing in Spring Boot logs 【发布时间】:2021-08-31 05:24:29 【问题描述】:例如,在包含 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】:Sleuth 使用logging.pattern.level
注入这些细节。既然你覆盖了它,Sleuth 会放在那里的细节就不存在了。
如果你不设置属性,你应该在没有 Sleuth 的情况下看到这个:
2016-02-11 17:12:45.404 INFO 85184 --- [nio-8080-exec-1] ...
如果你包括 Sleuth:
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
【讨论】:
以上是关于Spring Boot 日志中缺少 SpanID 和 TraceID的主要内容,如果未能解决你的问题,请参考以下文章
spring cloud sleuth 自定义traceId, spanId日志pattern
spring cloud sleuth 自定义traceId, spanId日志pattern
spring cloud sleuth 自定义traceId, spanId日志pattern
使用 Spring Boot Maven 插件时,jar 文件中缺少 Spring Boot 应用程序中的资源