的Tomcat 6和log4j的应用程序日志不产生输出
题
我试图让log4j的应用程序(webapp)日志记录在一个Tomcat 6应用工作。我在我的WEB-INF目录下,log4j.dtd的log4j-1.2.15.jar和log4j.xml文件在WEB-INF / classes中。
我的log4j.xml看起来像:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd" >
<log4j:configuration>
<appender name="massAppender" class="org.apache.log4j.RollingFileAppender">
<param name="maxFileSize" value="100KB" />
<param name="maxBackupIndex" value="2" />
<param name="File" value="${catalina.home}/logs/mass.log" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{ABSOLUTE} %5p %c{1}: %m%n " />
</layout>
</appender>
<category name="com.company.mass">
<priority value="DEBUG"/>
<appender-ref ref="massAppender"/>
</category>
<root>
<appender-ref ref="massAppender" />
</root>
</log4j:configuration>
我的servlet是在包:
package com.company.mass;
,其中记录器被声明为:
private static Logger logger = Logger.getLogger(Handler.class);
和在我的doGet(...)方法的顶部有:
logger.error("foo");
当我部署在Tomcat中的应用程序,并去到Servlet,它工作正常。我甚至得到了mass.log文件,但没有把它得到。它不以任何其他日志显示了两种,并且没有明显的错误。任何想法是怎么回事?
解决方案
您确定log4j的实际使用您的log4j.xml
为它的配置,而不是在classpath另一个文件?
启用的系统属性-Dlog4j.debug
有log4j的打印出的结果究竟哪个配置文件它正在使用的信息。
其他提示
不知道,如果你在你的根记录器需要一个优先事项。尝试这种配置
<category name="com.company.mass">
<priority value="DEBUG"/>
<!-- no need to specify appender again here -->
</category>
<root>
<priority value="INFO"/>
<appender-ref ref="massAppender" />
</root>
尝试添加行:
<param name="Threshold" value="ALL" />
到您massAppender配置
和该行
<priority value ="debug"/>
根定义中
当我遇到这个问题,我能够加入common-logging.jar
我展开组件来解决它。
不隶属于 StackOverflow