昨天在正确使用LOG4J后,发现控制台日志中,还有报错,如下:
log4j:ERROR setFile(null,true) call failed.
java.io.FileNotFoundException: /logs/log.txt (系统找不到指定的路径。)
WEB的目录下已经有 /logs/目录了,怎么还会报错呢,log4j已开始work了呀,怎么还会有错误呢!
经过高手诊断,是common.logging产生的的错误,因为common.logging日志无需配置,只要web-inf/classes目录下有它可以解析的文件格式,就会被common.logging作为它的配置文件,也就是说它把log4j的配置文件作为common.logging配置文件初始化了,真是流氓呀。当时记得在网上有人说过这个问题,有人有提到common.log的问题,却没有讲请楚,看来高手还是要在生活中找,看来天下文章一大抄,网络更是验证这个观点。
解决的方法:将common-logging包从web-inf/lib目录下删除,删除之前请确认你的系统中没有用该包。(已验证过),其二,将LOG4J的配置文件不要放在classess目录下(未验证)。
hehe.从高手哪儿学到一点。向高手请教一次,少翻十本书。