首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >spring云侦探如何将跟踪信息添加到logback日志行中

spring云侦探如何将跟踪信息添加到logback日志行中
EN

Stack Overflow用户
提问于 2021-01-22 14:17:18
回答 1查看 8.9K关注 0票数 6

我有基于Spring的web应用程序,它使用logback进行日志记录。

我还继承了spring引导中的一些logback默认值,使用:

代码语言:javascript
复制
<include resource="org/springframework/boot/logging/logback/base.xml"/>

我想开始记录跟踪信息,所以我添加了:

代码语言:javascript
复制
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-sleuth</artifactId>
</dependency>

Sleuth将跟踪信息添加到日志行,但我在模式中找不到任何%X%mdchttps://github.com/spring-projects/spring-boot/blob/2.3.x/spring-boot-project/spring-boot/src/main/resources/org/springframework/boot/logging/logback/defaults.xml

如何将跟踪信息添加到日志行中?

我使用spring-cloud-starter-parent Hoxton.SR9父母,它带来了Spring Boot 2.3.5.RELEASEspring-cloud-starter-sleuth 2.2.6.RELEASE

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-22 19:01:13

(tl;dr位于底部)

从这个问题中,我想您已经知道traceIdspanId放在MDC中了。

如果您查看侦探文档的日志集成部分,您将看到示例中的跟踪信息在日志级别(ERROR)和pid (97192)之间。如果您尝试将其与logback配置匹配,您将看到日志级别与pid:${LOG_LEVEL_PATTERN:-%5p} ${PID:- }之间没有任何关系,因此跟踪信息是如何获得的,这可能是一个有效的问题。

如果你再看一看文档,上面写着:

这个日志配置是由Sleuth自动设置的。您可以通过禁用spring.sleuth.enabled=false属性或放置您自己的logging.pattern.level属性来禁用它。

它仍然没有明确解释该机制,但它给了您一个巨大的提示:

放置您自己的logging.pattern.level属性

基于此,您可以认为日志级别和pid之间没有什么关系,Sleuth只是覆盖日志级别并将跟踪信息放入其中。如果您搜索文档在代码中提到的属性,您将发现这正是发生的事

TL;DR

侦探覆盖日志级别模式,并将跟踪信息添加到其中:

代码语言:javascript
复制
map.put("logging.pattern.level", "%5p [${spring.zipkin.service.name:" + "${spring.application.name:}},%X{traceId:-},%X{spanId:-}]");
票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65846859

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档