项目中使用log4j进行日志输出,用log4j.properties进行了配置,junit测试可以正常的看到log输出,但发布到tomcat后,在控制台及log文件中均没有看到输出,当时没有在意,这几天要跟踪一下一个问题,才重视起来,找了半天资料没发现原因,郁闷。
后来发现,使用了一个叫jxl的jar包,里面有一个log4j.xml,所有日志都输出到jxl.log的文件中去了,马上创建了一个log4j.xml,放到WEB-INF/classes目录下,正常的看到了log输出。
原来log4j也有潜规则:
[size=medium][color=red]如果在classpath中发现了log4j.xml配置文件,log4j将不再尝试加载log4j.properties配置。[/color][/size]
继续郁闷,看来以后保险起见,只用log4j.xml来配置了。
后来发现,使用了一个叫jxl的jar包,里面有一个log4j.xml,所有日志都输出到jxl.log的文件中去了,马上创建了一个log4j.xml,放到WEB-INF/classes目录下,正常的看到了log输出。
原来log4j也有潜规则:
[size=medium][color=red]如果在classpath中发现了log4j.xml配置文件,log4j将不再尝试加载log4j.properties配置。[/color][/size]
继续郁闷,看来以后保险起见,只用log4j.xml来配置了。
本文介绍了在项目中使用log4j进行日志输出时遇到的问题及解决方法。当log4j.properties配置正常工作但在部署到Tomcat后日志消失时,发现是因为一个名为jxl的jar包自带log4j.xml导致日志输出被覆盖。通过创建自己的log4j.xml并放置在WEB-INF/classes目录下解决了问题。
2639

被折叠的 条评论
为什么被折叠?



