Spring-Cloud-Sleuth enable MDC properties in pattern layout to log TraceId(Spring-Cloud-Sleuth使图案布局中的MDC属性能够记录TraceID)
问题描述
在添加了Spring-Cloud-Sleuth依赖项之后,我没有在日志文件中看到TraceID或span ID。我们使用log4j2和slf4j。显然,这可以开箱即用地使用Logback,但不能使用log4j2。似乎其他人已经通过在配置文件中添加属性=true成功地使用了json布局,但我们使用的是模式布局,似乎不提供Boolean。我已经正确地配置了模式,但这并不重要,因为当我在MDCPatternConverter类中设置调试器时,线程上下文映射为空。我可以更改代码并直接设置MDC值,但出于某种原因,我们下游的人希望我们使用这种依赖关系。
添加了7月的log4j 添加了Spring-Boot-starter-log4j2
<Property name="STP_PATTERN">%d{yyyy-MM-dd HH:mm:ss,SSS zzz} %-5p [%X{X-B3-TraceId} TEST %X{X-B3-SpanId} %t:%c{1}:%x] -%m%n
</Property>
推荐答案
Sleuth暗中使用Brave。您必须将io.zipkin.brave:brave-context-log4j2
依赖项添加到类路径中。有关更多信息,请查看Brave的文档https://github.com/openzipkin/brave/tree/master/context/log4j2为方便起见,我将在此处复制
这会将跟踪和范围ID添加到Log4J 2线程上下文中,以便您 可以相应地搜索或聚合日志。 要启用此功能,请配置Brave。跟踪 线程上下文作用域装饰符如下:
只需创建ThreadContextScopeDecorator
类型的Bean,Sleuth将获取它
@Bean
ScopeDecorator threadContextScopeDecorator() {
return new ThreadContextScopeDecorator();
}
这篇关于Spring-Cloud-Sleuth使图案布局中的MDC属性能够记录TraceID的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:Spring-Cloud-Sleuth使图案布局中的MDC属性能够记录TraceID
基础教程推荐
- Spring Boot Freemarker从2.2.0升级失败 2022-01-01
- 如何在不安装整个 WTP 包的情况下将 Tomcat 8 添加到 Eclipse Kepler 2022-01-01
- 如何对 HashSet 进行排序? 2022-01-01
- 首次使用 Hadoop,MapReduce Job 不运行 Reduce Phase 2022-01-01
- 由于对所需库 rt.jar 的限制,对类的访问限制? 2022-01-01
- 在螺旋中写一个字符串 2022-01-01
- 如何使用 Eclipse 检查调试符号状态? 2022-01-01
- 如何强制对超级方法进行多态调用? 2022-01-01
- 如何使用 Stream 在集合中拆分奇数和偶数以及两者的总和 2022-01-01
- Java 中保存最后 N 个元素的大小受限队列 2022-01-01