MDC上下文重置为null

时间:2018-03-27 02:50:21

标签: mdc

我的网络服务在dropwizard上运行。我正在使用slf4j MDC进行设置 我的webservice中的各种属性。目前我有2个服务端点service1和service2。它们中的每一个都调用一个函数func(),其中使用MDC记录属性。但是当我稍后检索MDC以在缓冲区appender中记录这些属性时,只有service1的属性在MDC中可用,service2的MDC上下文返回null。我没有在我的代码中的任何地方清除MDC。可能是什么原因。

service1()
{func()
}

service2()
{
func()
}

func() {
MDC.put(x,y);
}

1 个答案:

答案 0 :(得分:0)

我发现了问题所在。虽然被调用的func()是相同的。 service2()在单独的线程池中调用该函数。 (因此MDC在该线程池中死亡。而service1在同一个线程中调用func(),因此它存在并且上下文中设置的属性可用。 MDC的范围在线程内。