通过macen管理依赖,然后再其他模块中把运行成功后的log4j.xml复制过来,那么内容和位置都是正确的,却报了下面的错误。
解决办法:
1.在resource下新建log4j.xml配置文件
2.2.在log4j.xml中加入如下内容 (其实和我之前直接复制的文件里面的内容一致)
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
<param name="Encoding" value="UTF-8" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%-5p %d{MM-dd HH:mm:ss,SSS} %m (%F:%L) \n" />
</layout>
</appender>
<logger name="java.sql">
<level value="debug" />
</logger>
<logger name="org.apache.ibatis">
<level value="info" />
</logger>
<root><level value="debug" />
<appender-ref ref="STDOUT" />
</root>
</log4j:configuration>
3.重新运行代码就没有以上的警告
还有一些常见的粗心错误,可以参考:
问题原因
缺失log4j.properties或log4j.xml配置文件;
log4j.properties配置文件为放在source文件夹下;
log4j.properties配置文件编码不正确;
解决方案
排查问题步骤:
1.确认是否建立log4j.properties或log4j.xml配置文件;
2.确认配置文件是否名称为log4j.properties或log4j.xml;
3.确认配置文件编码是否为UTF-8
4.确认配置文件中的内容是否正确。
以IDEA为例
项目结构:
IDEA中目录设置:
在IDEA中,我们知道resource为资源目录,如果没有将其标记为Resource,那么log4j配置文件会发不到classpath下,解决方案如下:
1.File–>Project Structure…
2.标记java为Source,resources为Resources
或者直接resource右键–>Mark Directory As–>Resources Root,如果已经标记过了,则不会显示该选项。