如何使用Spring Sleuth 2.0记录MDC?

3
提到StackOverflow中的问题/答案如何使用Spring Sleuth记录MDC? 我认为随着spring-cloud 2.0的推出,这一点已经或将发生改变,因为现在没有了SpanLoggerSlf4jSpanLogger(或者我没有找到它)。
如果设置application属性spring.sleuth.baggage-keysspring.sleuth.propagation-keys,如果能够放入到Slf4jCurrentTraceContext中的MDC中,那不是很好吗?(由于该类目前是final状态,因此无法对其进行子类化)
如果不行,我应该如何根据spring-cloud 2.0实现这一点呢?
2个回答

4
我们不希望将所有条目放入MDC(这真的没有太多意义)。但是,您可以复制Slf4jCurrentTraceContext并按照您想要的方式进行扩展(并将其注册为bean),或者创建自己的CurrentTraceContext实现,该实现将通过Bean后处理器包装现有的CurrentTraceContext并执行其他逻辑。我想第一种选项更可取。

3
在版本2.1.0中引入了Slf4jScopeDecorator,只要被列入spring.sleuth.log.slf4j.whitelisted-mdc-keys配置的白名单中,它就可以自动将行李值添加到MDC中。例如,如果您有以下配置:
spring.sleuth.baggage-keys=key1,key2
spring.sleuth.log.slf4j.whitelisted-mdc-keys=key2

只有key2的值会自动添加到MDC中,而不是key1的值。
更多信息请参见:https://cloud.spring.io/spring-cloud-sleuth/reference/html/#prefixed-fields

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接