log4j的简单异常解决办法

时间:2022-01-25 21:51:00

今天下载了网易的Dagger1.3项目,准备了解学习一下别人优秀的自动化测试框架。Selenium+TestNG。

在运行一个Demo时,无论怎么修改SRC目录下的log4j.properties,还是一直报以下的错误。

原因还是一直找不到log4j.properties


log4j:WARN No appenders could be found for logger (org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager).

log4j:WARN Please initialize the log4j system properly.

log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.


后来在使用Logger前时,通过主动设置一下配置的路径终于可以正常启用Log4j。 

System.setProperty("log4j.configuration","file:E:/project/j2se/src/com/logger/log4j.properties");

上网查到有人说

查看了下源码,发现LogManager是先通过file来加载,之后是用classLoader来加载的。

使用file来加载时,可以使用代码的设置,指定log4j.properties

System.setProperty("log4j.configuration","file:E:/project/j2se/src/com/logger/log4j.properties");

使用classLoader来加载时,log4j.properties文件在放对应\src目录后,当JAVA文件编译成Class文件时,log4j.properties同时会被复制过去

但是Dagger1.3里的Class文件目录对应的target\classes里并没有log4j.properties文件。于是我把\src目录下的log4j.properties复制到\target\classes

后启动,便能正常使用log4j打印记录日志。