系统自动生成了一些代码,里面都是用的common-logging做的日志,无奈,只要加入log4j两个配置文件内容如下
commons-logging.propertiesorg.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLoggerlog4j.properties### direct log messages to stdout ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
### root logger option ###
log4j.rootLogger=info, stdout
### Hibernate logging options ###
log4j.logger.net.sf.hibernate=info
### log JDBC bind parameters ###
log4j.logger.net.sf.hibernate.type=info
### log PreparedStatement cache activity ###
log4j.logger.net.sf.hibernate.ps.PreparedStatementCache=info
在web-inf\classes下也有这两个文件,但是启动的时候就是报错
log4j:WARN No appenders could be found for logger (org.apache.commons.digester.Digester.sax).
log4j:WARN Please initialize the log4j system properly.请帮我解决一下,谢谢
commons-logging.propertiesorg.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLoggerlog4j.properties### direct log messages to stdout ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
### root logger option ###
log4j.rootLogger=info, stdout
### Hibernate logging options ###
log4j.logger.net.sf.hibernate=info
### log JDBC bind parameters ###
log4j.logger.net.sf.hibernate.type=info
### log PreparedStatement cache activity ###
log4j.logger.net.sf.hibernate.ps.PreparedStatementCache=info
在web-inf\classes下也有这两个文件,但是启动的时候就是报错
log4j:WARN No appenders could be found for logger (org.apache.commons.digester.Digester.sax).
log4j:WARN Please initialize the log4j system properly.请帮我解决一下,谢谢
log4j:WARN No appenders could be found for logger (org.apache.commons.digester.Digester.sax).
log4j:WARN Please initialize the log4j system properly. 你确定这个是log4j.properties找不到吗?我这里也是一直报这个错,但是
log还是正常打出来了
<root>
<priority value="error" />
<appender-ref ref="file" />
<appender-ref ref="console" />
</root>
log4j.rootLogger=OFF, stdout出现这个问题的原因是,tomcat(假设你是tomcat,其他类似)启动的时候,之前都是都是加载tomcat,用的是tomcat\conf\logging.properties,同时还没有加载你工程,没有log4j什么事情,这个阶段,日志没什么问题接下来加载工程,按照web.xml的load-on-startup优先度,加载Servlet,一般第一个是Struts的ActionServlet。而ActionServlet的第一件事情,又是去使用org.apache.commons.digester.Digester读取struts-config,这个时候,由于使用的是你的工程对应的类加载器,classpath中存在log4j,而org.apache.commons.digester.Digester类中的日志对应的分类,就是org.apache.commons.digester.Digester,而你的log4j配置没有为他配置过,所以有警告。之后就不会有这个警告。只要配置一下默认的输出关闭(或只输出高级别错误信息)即可。