Spring 引导日志中缺少 SpanID 和 TraceID
SpanID and TraceID missing in Spring Boot logs
例如,在包含 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 的新手,请告诉我我做错了什么来帮助我。
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 there/not 在那里并且您使用的是正确的版本。
查看此答案以了解后台发生的情况:
例如,在包含 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 的新手,请告诉我我做错了什么来帮助我。
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 there/not 在那里并且您使用的是正确的版本。
查看此答案以了解后台发生的情况: