log4j配置日志不显示问题排查方法
2013-06-07 10:38
393 查看
显示警告信息如下:
log4j:WARN
No appenders could be found for logger (org.springframework.web.context.ContextLoader).
log4j:WARN Please initialize the log4j system properly.
原因是是在加载org.springframework.web.context.ContextLoader这个listener的时候没找到log4j的配置文件造成的。
1.先去查看web.xml的配置:
web工程启动的时候会按照xml的书写顺序地去加载各项配置,先保证log4j的相关配置放在ContextLoaderListener的前面:
<!--Log4j -->
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>/WEB-INF/log4j.properties</param-value>
</context-param>
<context-param>
<param-name>log4jRefreshInterval</param-name>
<param-value>6000</param-value>
</context-param>
<!-- 上下文参数 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/applicationContext.xml
</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
<!--org.springframework.web.context.ContextLoaderListener -->
<listener>
<display-name>context</display-name>
<listener-class>com.mycompty.framework.listener.ContextListener</listener-class>
</listener>
2.如果上面顺序没错的的话,再查看log4j.properties文件的配置有没有错
我把log4j.properties放在了WEB-INF下,内容大致如下
log4j.rootLogger=info,
stdout, D
log4j.logger.com=info
#log4j.logger.org.springframework.web.servlet.UmessageDispatcher=ERROR
#console
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd hh:mm:ss} %5p %c{1}:%L -> %m%n
##error file
log4j.logger.D=error
log4j.appender.D=org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.layout=org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern=%d{yyyy-MM-dd hh:mm:ss} %5p %c{1}:%L -> %m%n
log4j.appender.D.datePattern='.'yyyy-MM-dd
log4j.appender.D.Threshold = ERROR
log4j.appender.D.append=true
log4j.appender.D.File=/data/logs/project_logs/error.log
##daily file
log4j.appender.D=org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File=/data/logs/project_logs/project.log
log4j.appender.D.layout=org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern=%d{yyyy-MM-dd hh:mm:ss} %5p %c{1}:%L -> %m%n
3.以上都没错误的话日志应该就能出来了,但是我的还是显示警告信息没有日志,最后发现是properties配置文件里有些配置是直接从网上粘过来的,导致一些编码方式有问题(尤其是包含中文的时候),把文件删了重建一次 内容重新粘一次 保存的时候注意一下编码对不对;坑爹的问题解决了
-_-|||
log4j:WARN
No appenders could be found for logger (org.springframework.web.context.ContextLoader).
log4j:WARN Please initialize the log4j system properly.
原因是是在加载org.springframework.web.context.ContextLoader这个listener的时候没找到log4j的配置文件造成的。
1.先去查看web.xml的配置:
web工程启动的时候会按照xml的书写顺序地去加载各项配置,先保证log4j的相关配置放在ContextLoaderListener的前面:
<!--Log4j -->
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>/WEB-INF/log4j.properties</param-value>
</context-param>
<context-param>
<param-name>log4jRefreshInterval</param-name>
<param-value>6000</param-value>
</context-param>
<!-- 上下文参数 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/applicationContext.xml
</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
<!--org.springframework.web.context.ContextLoaderListener -->
<listener>
<display-name>context</display-name>
<listener-class>com.mycompty.framework.listener.ContextListener</listener-class>
</listener>
2.如果上面顺序没错的的话,再查看log4j.properties文件的配置有没有错
我把log4j.properties放在了WEB-INF下,内容大致如下
log4j.rootLogger=info,
stdout, D
log4j.logger.com=info
#log4j.logger.org.springframework.web.servlet.UmessageDispatcher=ERROR
#console
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd hh:mm:ss} %5p %c{1}:%L -> %m%n
##error file
log4j.logger.D=error
log4j.appender.D=org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.layout=org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern=%d{yyyy-MM-dd hh:mm:ss} %5p %c{1}:%L -> %m%n
log4j.appender.D.datePattern='.'yyyy-MM-dd
log4j.appender.D.Threshold = ERROR
log4j.appender.D.append=true
log4j.appender.D.File=/data/logs/project_logs/error.log
##daily file
log4j.appender.D=org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File=/data/logs/project_logs/project.log
log4j.appender.D.layout=org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern=%d{yyyy-MM-dd hh:mm:ss} %5p %c{1}:%L -> %m%n
3.以上都没错误的话日志应该就能出来了,但是我的还是显示警告信息没有日志,最后发现是properties配置文件里有些配置是直接从网上粘过来的,导致一些编码方式有问题(尤其是包含中文的时候),把文件删了重建一次 内容重新粘一次 保存的时候注意一下编码对不对;坑爹的问题解决了
-_-|||
相关文章推荐
- spring 中配置log4j输出日志常见的一个小问题解决方法
- Struts2 日志原理及配置方法(结合Log4j)
- ibatis打印sql日志的方法,在log4j.xml中加入如下配置即可
- py2exe打包的配置和icon不显示问题的解决方法
- Log4j -日志的配置和路径问题
- SSH框架中配置log4j日志以及Struts2配置异常处理方法
- logback--配置(显示类名、方法名、代码行号问题)
- 用华为C8813调试LogCat不显示日志问题解决方法
- 关于在nginx负载均衡下,项目共用log4j配置导致的日志混乱问题
- log4j日志信息没法像配置的样子显示到控制台或log文件中。
- 解决web项目存在多个log4j.properties配置文件,导致日志级别配置不生效问题
- log4j中配置日志文件相对路径方法
- Struts2 日志原理及配置方法(结合Log4j)
- log4j配置日志文件log4j.appender.R.File相对路径方法
- web项目Log4j日志输出路径配置问题
- log4j日志文件乱码问题的解决方法
- log4j日志文件乱码问题的解决方法
- log4j日志时间与系统时间不一致问题解决方法
- Log4J配置文件日志文件路径问题