2013-02-26 33 views
9

我用我的項目中下面的代碼記錄與log4j的調試信息是否真實log4j的調試消息在控制檯沒有顯示儘管isDebugEnabled

private static final Logger LOG = Logger.getLogger(MyClass.class) 
// ... 
if(LOG.isDebugEnabled()) { 
    LOG.debug("my log message"); 
} 

我可以證實,我的log4j的配置是正確的,加入一個破發點在調試消息被寫入的那一行,即LOG.isDebugEnabled()確實返回true。 有趣的是,我的調試消息並不在我的IDE(的IntelliJ)的控制檯顯示,改變LOG.debug()LOG.info()然而,當,不出所料記錄的信息消息。

任何想法,我應該尋找以找出哪裏出了問題?

編輯:這裏是我的log4j.properties文件

log4j.appender.Stdout=org.apache.log4j.ConsoleAppender 
log4j.appender.Stdout.layout=org.apache.log4j.PatternLayout 
log4j.appender.Stdout.layout.conversionPattern=%-5p [%d{dd.MM.yy HH:mm:ss}] %C{1} - %m [thread: %t]\n 
log4j.appender.Stdout.threshold=info 

log4j.appender.StandaloneFile=org.apache.log4j.RollingFileAppender 
log4j.appender.StandaloneFile.File=logs/standalone.log 
log4j.appender.StandaloneFile.MaxFileSize=5MB 
log4j.appender.StandaloneFile.MaxBackupIndex=20 
log4j.appender.StandaloneFile.layout=org.apache.log4j.PatternLayout 
log4j.appender.StandaloneFile.layout.ConversionPattern=%-5p [%d{dd.MM.yy HH:mm:ss}] %C{1} - %m [thread: %t]\n 
log4j.appender.StandaloneFile.threshold=info 

log4j.rootLogger=info, Stdout, StandaloneFile 
log4j.logger.com.myPacke.package1=info, Stdout, StandaloneFile 

log4j.logger.com.myPacke.package2=DEBUG 
+2

你可以添加log4j.properties嗎?也許你錯過了一個appender ... – BigMike 2013-02-26 10:35:29

+1

對不起,以爲我們不需要這個,因爲'isDebugEnabled'已經返回'true',但是當然,你是對的。我已經更新了這個問題。 – peterp 2013-02-26 10:41:30

+0

isDebugEnabled()是不夠的,你可能有過濾器(如你的確)。請參閱StephenC評論巴拉吉的答案。 – BigMike 2013-02-26 10:47:01

回答

8
log4j.appender.Stdout.threshold=info 
加入

應該是:

log4j.appender.Stdout.threshold=debug 

您只是將控制檯閾值設置爲info,因此您沒有獲取調試級別日誌。

要知道你還設置了RollingFileAppender進行閾值作爲信息Ç@Stephen評論。

+2

+1 - 啓用調試日誌記錄(從根記錄器開始)...但是他的兩個appender都在「INFO」下過濾掉日誌事件。 – 2013-02-26 10:44:32

+0

哎呀......當然!一個人應該認爲命名一個配置參數'threshold'應該是顯而易見的......我只是沒有注意到它:(非常感謝!在閱讀了[This SO answer]之後(http://stackoverflow.com/questions/) 5119883/log4j-what-is-threshold)我現在實際上明白了這裏究竟發生了什麼。 – peterp 2013-02-26 10:50:23

1

確保配置低於附加器......我們已經使用的log4j.xml,所以我從XML

<appender name="console" class="org.apache.log4j.ConsoleAppender"> 
    <param name="Target" value="System.out" /> 
    <param name="Threshold" value="info" /> 
    <layout class="org.apache.log4j.PatternLayout"> 
     <param name="ConversionPattern" value="%-5p: %c - %m%n" /> 
    </layout> 
</appender> 

<appender name="logfile" class="org.apache.log4j.RollingFileAppender"> 
    <param name="File" value="log/dcm_migration.log" /> 
    <param name="Append" value="false" /> 
    <layout class="org.apache.log4j.PatternLayout"> 
     <param name="ConversionPattern" value="%d %-5p [%c{1}] %m %n" /> 
    </layout> 
</appender> 
相關問題