Spring boot 如何使用Spring Sleuth 2.0记录MDC?

Spring boot 如何使用Spring Sleuth 2.0记录MDC?,spring-boot,slf4j,spring-cloud-sleuth,Spring Boot,Slf4j,Spring Cloud Sleuth,参考中的提问/回答 我认为这已经/将在SpringCloud2.0中改变(d),因为不再有SpanLogger或Slf4jSpanLogger(或者我找不到它) 如果应用程序属性spring.sleuth.baggage键和spring.sleuth.propagation键如果设置也将被放入MDC中,那不是很好吗?我认为在Slf4jCurrentTraceContext(因为这个类当前是final我不能对它进行子类化) 如果没有,我如何用SpringCloud2.0实现这一点呢?我们不想把所有

参考中的提问/回答 我认为这已经/将在SpringCloud2.0中改变(d),因为不再有
SpanLogger
Slf4jSpanLogger
(或者我找不到它)

如果应用程序属性
spring.sleuth.baggage键
spring.sleuth.propagation键
如果设置也将被放入MDC中,那不是很好吗?我认为在
Slf4jCurrentTraceContext
(因为这个类当前是
final
我不能对它进行子类化)


如果没有,我如何用SpringCloud2.0实现这一点呢?

我们不想把所有条目都放在MDC中(这真的没有多大意义)。但是,您可以复制
Slf4jCurrentTraceContext
并以您想要的方式对其进行扩展(并将其注册为bean),也可以创建自己的
CurrentTraceContext
实现,该实现将通过bean后处理器包装现有的
CurrentTraceContext
,并执行其他逻辑。我想第一个选项更可取。

在版本
2.1.0
中,引入了
slf4jscopedecodecorator
,只要行李值在
spring.sleuth.log.slf4j.whitelisted MDC密钥配置中被列入白名单,它就会自动将行李值添加到MDC中

例如,如果您具有以下配置:

spring.sleuth.baggage-keys=key1,key2
spring.sleuth.log.slf4j.whitelisted-mdc-keys=key2
只有
key2
的值将自动添加到MDC中,而不是
key1
的值

有关详细信息,请参阅: