我的日誌記錄配置與log4j存在問題。所有的日誌消息都按照預期顯示在root.log文件中,但stdout只顯示root.log的子集,儘管我將它配置爲相同。Log4j:日誌文件正確,但Stdout只顯示子集
編輯:準確地說,我錯過了a.b的所有消息。
編輯2:我不是絕對確定,但我認爲,從a.b.的一些消息。 (INFO和DEBUG)在標準輸出上被記錄,而另一些則沒有。可能是與線程相關的問題?例如。一些線程在做日誌記錄,有些不是?
以下是我的log4j.xml,是否最終出現錯誤?
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd" >
<log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'>
<appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{HH:mm:ss,SSS} [%t] (%C:%L) %-5p - %m%n" />
</layout>
</appender>
<appender name="FILE_ALL" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="${catalina.home}/logs/root.log"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-4r (%F:%L) %-5p %x - %m%n" />
</layout>
</appender>
<logger name="a.b.master">
<level value="DEBUG" />
<appender-ref ref="CONSOLE" />
<appender-ref ref="FILE_ALL" />
</logger>
<logger name="a.b.master.orm.support.HibernateSessionFilter">
<level value="INFO" />
<appender-ref ref="CONSOLE" />
<appender-ref ref="FILE_ALL" />
</logger>
<logger name="a.b.master.aop.hibernate.OpenSessionInRequestInterceptor">
<level value="info" />
<appender-ref ref="CONSOLE" />
<appender-ref ref="FILE_ALL" />
</logger>
<root>
<level value="INFO"/>
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE_ALL"/>
</root>
</log4j:configuration>
我正在使用Commons Logging作爲實現。
感謝您的幫助!
在你a.b.master.aop.hibernate.OpenSessionInRequestInterceptor,你有<電平值=「信息」 />而不是信息 - 這可能是一個問題?否則:控制檯輸出中缺少哪些消息? – 2011-05-25 10:52:13
好的,我會將信息更改爲INFO,但我認爲它不會造成巨大的差異。但感謝您的答案。我已經編輯了一些關於丟失消息 – Erik 2011-05-25 13:27:09
的更多信息,只有logger.debug消息將流向控制檯。您使用的是來自記錄器的命令? – Jai 2011-05-25 14:06:53