我用我的項目中下面的代碼記錄與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
你可以添加log4j.properties嗎?也許你錯過了一個appender ... – BigMike 2013-02-26 10:35:29
對不起,以爲我們不需要這個,因爲'isDebugEnabled'已經返回'true',但是當然,你是對的。我已經更新了這個問題。 – peterp 2013-02-26 10:41:30
isDebugEnabled()是不夠的,你可能有過濾器(如你的確)。請參閱StephenC評論巴拉吉的答案。 – BigMike 2013-02-26 10:47:01