关于log4j的配置文件

Posted 张小贱1987

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于log4j的配置文件相关的知识,希望对你有一定的参考价值。

因为要在spring中添加Mongodb,在网上查阅资料的时候我发现有人在web.xml中添加如下代码:

  1. <context-param>
  2.       <param-name>log4jConfigLocation</param-name>
  3.       <param-value>classpath:config/properties/log4j.properties</param-value>
  4.    </context-param>
  5.  
  6.    <listener>
  7.       <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
  8.    </listener>

可以定义log4j的配置文件的路径。

因为我向来是把这个文件放在src下的。这种可配置的做法让我迷惑:

这种可配置的做法依赖于web.xml,那么也就是说只有web项目才能使用。而且要配置springframework下的一个Log4jConfigListener。所以这种做法更加奇怪。

我尝试在src下和classpath:config/properties/下都放了log4j.properties文件,但是log文件的输出路径不同。结果系统启动的时候会在两个位置都创建log文件。不过,最后经过我的验证,只有web.xml中配置的log文件会打印出内容,另外一个log文件甚至不是"占用"状态,可以删除不会报错。

后来我把web.xml中的这段配置删除,src下的配置的log文件就开始生效,保持占用状态,可以输出错误日志。

最终我的结论是,web.xml中配置的路径将优先生效,并发挥作用。

 

在整个过程中,还有一个经验是,如果log4g.properties的内容有错误,那么在启动的时候,会报和没有配置log4g. properties文件一样的错误:

  1. log4j:WARN No appenders could be found for logger (org.springframework.web.context.ContextLoader).
  2. log4j:WARN Please initialize the log4j system properly.
  3. log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

 

以上是关于关于log4j的配置文件的主要内容,如果未能解决你的问题,请参考以下文章

使用 Log4j XML 配置文件配置 Hibernate 日志记录?

log4j.properties配置详解

log4j2配置文件log4j2.xml配置详解

聊一聊log4j2配置文件log4j2.xml

log4j2的配置文件log4j2.xml笔记

关于log4j的一个问题