我们在Log4J的使用中,偶尔会发生这样的场景:我们明明已经配置了log4j.properties文件 但是有时候就不按预期输出日志。
归其原因,有两种:
1.多种依赖jar包相互干扰。
2.其他的配置文件被加载覆盖了你自己的配置。
对于场景一:可以使用maven的dependency:tree查看依赖的jar包排除相关传递依赖就可以了
对于场景二: 可以打开Log4j的调试模式,运行程序然后通过日志确定加载的配置文件
System.setProperty("log4j.debug","true");
LogLog.setQuietMode(false);
Connected to the target VM, address: '127.0.0.1:51578', transport: 'socket'
log4j: Trying to find [log4j.xml] using context classloader sun.misc.Launcher$AppClassLoader@18b4aac2.
log4j: Trying to find [log4j.xml] using sun.misc.Launcher$AppClassLoader@18b4aac2 class loader.
log4j: Trying to find [log4j.xml] using ClassLoader.getSystemResource().
log4j: Trying to find [log4j.properties] using context classloader sun.misc.Launcher$AppClassLoader@18b4aac2.
log4j: Using URL [file:/Users/shangkuidu/code/Cloud/dcom/alibaba-pus