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 的小伙伴都会遇到, 引以为戒。

posted @ 2020-08-15 16:18  寒门悔客  阅读(535)  评论(0编辑  收藏  举报