今天下载了网易的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打印记录日志。