参考How to log MDC with Spring Sleuth?中的问题/答案
我认为这已经/将会改变(d)spring-cloud 2.0,因为不再有SpanLogger
或Slf4jSpanLogger
(或者我找不到它)
如果设置的应用程序属性spring.sleuth.baggage-keys
和spring.sleuth.propagation-keys
也会放在MDC中,我认为Slf4jCurrentTraceContext
内部(因为此类目前是{{1}我无法继承它)
如果没有,我怎么能相应地使用spring-cloud 2.0实现这个目标?
答案 0 :(得分:3)
我们不想把所有条目都放在MDC中(这真的没有多大意义)。但是,您可以复制Slf4jCurrentTraceContext
并以您希望的方式扩展它(并将其注册为bean),也可以创建自己的CurrentTraceContext
实现来包装现有的CurrentTraceContext
通过Bean Post处理器并执行其他逻辑。我想第一种选择更合适。
答案 1 :(得分:3)
在Slf4jScopeDecorator
版中引入了spring.sleuth.log.slf4j.whitelisted-mdc-keys
,只要在spring.sleuth.baggage-keys=key1,key2
spring.sleuth.log.slf4j.whitelisted-mdc-keys=key2
配置中将行李值列入白名单,它将自动将行李值添加到MDC。
例如,如果您具有以下配置:
key2
只有key1
的值将被自动添加MDC,而不是main
├── .gitignore
└── build (subtree)
├── .gitignore
└── config.user.json
└── config.site.json
└── index.js
的值。
有关更多信息,请参见:https://cloud.spring.io/spring-cloud-sleuth/reference/html/#prefixed-fields