尽管isDebugEnabled为true,但log4j调试消息未在控制台中显示

我在我的项目中使用以下代码来使用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 

 log4j.appender.Stdout.threshold=info 

应该:

 log4j.appender.Stdout.threshold=debug 

您只需将控制台阈值设置为info,这样您就无法获得调试级别日志。

请注意,您还将RollingFileAppender阈值设置为@Stephen C评论的信息。

确保你的配置低于appender …我们使用了log4j.xml,所以我从xml添加