欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

应用日志文件没有生成(log4j+spring)

程序员文章站 2023-12-29 12:13:46
...
    这两天在把一个系统向新平台迁移,碰到一个问题,日志文件没有生成,也谈不上记录日志了。该系统在以前的环境是可以记录日志的,系统是Spring框架,日志采用log4j。最后分析了一下,由于重新写了一个web.xml,其中配置了Log4jConfigLocation,但是没有配置org.springframework.web.util.Log4jConfigListener,所以日志文件没有产生。
    把采用spring框架中log4j方面的配置整理一下:
<context-param>
<param-name>webAppRootKey</param-name>
<param-value>myapp.root</param-value>
</context-param>
<!--
    如果不设置该参数,webAppRootKey默认缺省是"webapp.root",Web容器启动时会把root的路径写到系统变量中,log4j.properties文件用${webName.root }来表示Web目录的绝对路径,例如:log4j.appender.ROLLING_FILE.File=${myapp.root}/WEB-INF/myapp.log。
    注意:为避免多个应用的冲突,如果多应用的话,需要设置这个参数。
-->

<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>/WEB-INF/log4j.properties</param-value>
</context-param>
<!--
    指定log4j.properties配置文件的位置
-->

<context-param>
<param-name>log4jRefreshInterval</param-name>
<param-value>60000</param-value>
</context-param>
<!--
    Spring监听log4j配置文件的间隔时间,单位为毫秒
-->

<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
<!--
    Log4jConfigListener是spring的类,它开启一个log4j的监听线程,并每60 秒检测日志配置变化,不需要每次重新启动web应用以使新的配置生效。
    注意:该listener是必须配置的,否则日志文件生不出来。
-->


附录:
2011-7-27 18:58:25 org.apache.catalina.core.ApplicationContext log
信息: SessionListener: contextInitialized()
2011-7-27 18:58:44 org.apache.catalina.core.ApplicationContext log
信息: Set web app root system property: 'eprapp.root' = [D:\aa\apache-tomcat-6.0.18\webapps\erpmmmmapp\]
2011-7-27 18:58:44 org.apache.catalina.core.ApplicationContext log
信息: Initializing Log4J from [D:\XXXXX\WEB-INF\classes\log4j.properties]


上一篇:

下一篇: