提到How to log MDC with Spring Sleuth?中的quesition/答案,我认为随着SpringCloud2.0已经/将改变(D),因为不再有SpanLogger或Slf4jSpanLogger (或者我找不到)。
如果应用程序属性spring.sleuth.baggage-keys和spring.sleuth.propagation-keys (如果set也放在MDC中),这不是很好吗?我认为在Slf4jCurrentTraceContext中(因为这个类目前是final,所以不能将它子类)
如果没有,我如何才能相应地使用SpringCloud2.0来实现这一点?
发布于 2018-04-01 06:39:03
我们不想把所有的条目放在MDC中(这真的没有什么意义)。但是,您可以复制Slf4jCurrentTraceContext并以您想要的方式对其进行扩展(并将其注册为bean),也可以创建您自己的CurrentTraceContext实现,通过Bean处理器包装现有的CurrentTraceContext并执行其他逻辑。我想第一种选择更可取。
发布于 2020-02-10 02:45:46
在2.1.0版本中,引入了Slf4jScopeDecorator,它将自动向MDC添加行李值,只要它们在spring.sleuth.log.slf4j.whitelisted-mdc-keys配置中被白色显示。
例如,如果您有以下配置:
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
https://stackoverflow.com/questions/49581760
复制相似问题