log4j MDC(ThreadContext) 日志子线程读取不到问题

static{
//设置子线程读取MDC变量
System.setProperty("log4j2.isThreadContextMapInheritable", "true");
}

private static final Logger logger = LogManager.getLogger(App.class);

位置一定不能搞错了,否则不生效!

设置log4j2.isThreadContextMapInheritable变量为true,log4j会使用 InheritableThreadLocal来存储线程变量,他可以将父线程内容拷贝到子线程中,而默认使用的ThreadLocal不具备这个特性

参考文档:http://logging.apache.org/log4j/2.x/manual/thread-context.html

你可能感兴趣的:(log4j MDC(ThreadContext) 日志子线程读取不到问题)