log4j的调试消息在控制台没有显示,尽管isDebugEnabled为真(log4j debug

2019-08-17 04:24发布

我用我的项目中下面的代码记录与log4j的调试信息

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

Answer 1:

log4j.appender.Stdout.threshold=info

应该:

log4j.appender.Stdout.threshold=debug

你刚才设置控制台门槛是信息,这样你就不会得到调试级别日志。

要知道,你还设置了RollingFileAppender进行阈值作为信息Ç@Stephen评论。



Answer 2:

请确保您的配置低于附加器......我们已经使用的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>


文章来源: log4j debug messages not showing in console despite isDebugEnabled being true