<!--log4j-->
<!--给日志配置路径-->
<context-param>
<param-name>webAppRootKey</param-name>
<param-value>webApp.root</param-value>
</context-param>
<!--<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>classpath:log4j2.xml</param-value>
</context-param>-->
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
1.使用默认的名字(log4j.properties),就不用配置log4jConfigLocation(上面注释掉的部分)。不然就指定路径(log4j2.xml是我现在用不到的部分),我现在放的是在根目录,直接classpath:log4j2.xml。
classpath是指定路径的格式,此外还有classpath.*:log4j2.xml。他们两个的区别是classpath是默认加载第一个,加载到就结束。classpath.*还会搜索后面还有没有匹配项。
2.如果指定绝对路径就不用配置webAppRootKey,这个是把文件放到webapp下面的。value值可以自定义,但是name值只能是webAppRootKey。配置了之后就要配置listener监听,不然就忽略。
官方的说的默认加载顺序为1.* 2.*(前面这两个我忘了...与java相关的就后面的两个)3.log4j.properties和3.log4j.xml。现在网上有很多老旧的文章是1.X的版本的xml配置方法。
我这里要说的是2.X的。他们两者的区别如下
1.X
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration PUBLIC "-//APACHE//DTD LOG4J 1.2//EN" "log4j.dtd">
<log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'>
<appender>
<layout>
<param value="%d %-5p [%t] %C{2} (%F:%L) - %m%n"/>
</layout>
</appender>
<category>
<priority value="info" />
</category>
<Root>
<priority value ="debug" />
<appender-ref ref="STDOUT" />
</Root>
</log4j:configuration>
2.X
<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
<Appenders>
<Console target="SYSTEM_OUT">
<PatternLayout pattern="%d %-5p [%t] %C{2} (%F:%L) - %m%n"/>
</Console>
</Appenders>
<Loggers>
<Logger level="info"/>
<Root level="debug">
<AppenderRef ref="STDOUT"/>
</Root>
</Loggers>
</Configuration>
五、Spring的db.config的配置(非必要)
我是启用了mybatis和druid连接池,所以会加一句
filters: stat,log4j
这样可以监听到log4j日志。