ThreadContext.put() 和 MDC.Put() 有什么区别?

问题描述 投票:0回答:2

我想知道

ThreadContext.put
MDC.put
之间的区别,因为我相信两者执行相同的操作。

java spring log4j thread-safety log4j2
2个回答
11
投票

Log4j 2 延续了 MDCNDC 的想法,但是 将它们合并到一个Thread Context中。线程上下文映射是 MDC和线程上下文堆栈的等价物是 相当于 NDC。尽管这些经常被用于目的 除了诊断问题之外,它们仍然经常被提及 就像 Log4j 2 中的 MDCNDC 一样,因为它们已经被众所周知 那些首字母缩略词

https://logging.apache.org/log4j/2.x/manual/thread-context.html


6
投票

根据log4j2手册

org.apache.log4j.MDC 和 org.apache.log4j.NDC 已被线程上下文取代。

© www.soinside.com 2019 - 2024. All rights reserved.