`
whzhengzy
  • 浏览: 134859 次
  • 性别: Icon_minigender_1
  • 来自: China
社区版块
存档分类
最新评论

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

阅读更多
    这两天在把一个系统向新平台迁移,碰到一个问题,日志文件没有生成,也谈不上记录日志了。该系统在以前的环境是可以记录日志的,系统是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]


分享到:
评论
1 楼 forcer521 2012-07-04  
非常不错,试试去。

相关推荐

Global site tag (gtag.js) - Google Analytics