</pre>今天用到log4j 发现了一个隐藏很深的东西</p><p>加载log4j的方式</p><p>在web 中一般用</p><p><pre name="code" class="html">
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>WEB-INF/log4j.xml</param-value>
</context-param>
<context-param>
<param-name>log4jRefreshInterval</param-name>
<param-value>2000</param-value>
</context-param>
如果此处不配置 只配置监听器 会默认加载WEB-INF/log4j.xml或者(WEB-INF/log4j.properties)文件 <pre name="code" class="html">如果配置文件在src下可用<param-value>classpath:log4j.xml</param-value>
并配置监听
<listener>
<listener-class>
org.springframework.web.util.Log4jConfigListener
</listener-class>
</listener>
在一般的java 项目中可用读取配置文件的方式
PropertyConfigurator.configure("路径");
上面属于常见的情景 但是你见过在一个项目中既没有从web.xml中加载log4j配置文件也没有手动加载配置文件 但是确用到了配置文件的东西,那么不要奇怪这种情况是使用log4j组件从而导致自动加载的问题,但是这里的配置文件必须在src下 不然log4j组件不会自动加载
log4j具体文件配置可参考:
http://www.cnblogs.com/ITEagle/archive/2010/04/23/1718365.html
http://blog.youkuaiyun.com/anlina_1984/article/details/5313023