log4j:WARN No appenders could be found for logger
前两天 学习 zookeeper 的时候跑 helloworld 的时候遇到个 log4j 报的错, 记录一下:
分析了一下,原因就是 : log4j 日志系统没有找到 log4j 的配置文件,所有没办法正常的初始化,需要把 log4j.properties 放到程序找的到的地方。
最开始解决的时候,上网随便找了 log4j.properties 的配置文件,试了下放在根目录下,src目录下,结果还是一样 。。。。。
log4j.rootLogger=WARN, stdout log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n
于是冷静的分析了一波,我的是普通的 maven 项目, 找不到资源文件就只有一个原因了: maven 的资源过滤 问题(maven 默认之后找放在 resources 下的资源文件, 一般放在 src 或者其他地方的资源文件,需要在 pom.xml 文件中配置)
于是我把 log4j.properties 文件放到 resources 文件下面, 解决了 。。。。自己太粗心了
这里补充一下,如果想要把资源文件放到 maven 项目的其他位置需要在 pom.xml 设置
<build> <resources> <resource> <directory>src/main/resources</directory> <includes> <include>**/*.properties</include> <include>**/*.xml</include> </includes> <filtering>true</filtering> </resource> <resource> <directory>src/main/java</directory> <includes> <include>**/*.properties</include> <include>**/*.xml</include> </includes> <filtering>true</filtering> </resource> </resources> </build>
这个问题基本上使用 maven 的小伙伴都会遇到, 引以为戒。