log4j日志输出到文件的配置(2)

<!--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日志。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/77fcd95fc72fff185fe9b87296dcadeb.html