应用日志文件没有生成(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]
把采用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]
推荐阅读
-
应用日志文件没有生成(log4j+spring)
-
Windows 下编译PHP生成的文件里没有php5apache2_2.dll
-
SQLServer2005 没有日志文件(*.ldf) 只有数据文件(*.mdf) 恢复数据库的方法
-
Windows下wamp php单元测试工具PHPUnit安装及生成日志文件配置方法
-
Node.js 在本地生成日志文件的方法
-
php命令行按模板生成应用的入口文件
-
logback.xml文件配置(按时间、文件大小和log名称生成日志
-
logback.xml文件配置(按时间、文件大小和log名称生成日志)
-
java最简单实现Log打印和生成日志文件
-
linux下Tomcat控制台日志文件按天生成