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
网友评论