问题描述
我正在使用项目中的以下代码将log4j
登录调试消息private static final Logger LOG = Logger.getLogger(MyClass.class) // ... if(LOG.isDebugEnabled()) { LOG.debug("my log message"); }
我可以通过在编写调试消息的行中添加一个断点,即LOG.isDebugEnabled()确实返回true,可以确认我的log4j配置是正确的. 有趣的是,我的调试消息并未显示在我的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
您只是将控制台阈值设置为信息,因此您不会获得调试级别日志.
请注意,您还将rollingfileappender阈值设置为@Stephen c注释的信息.
其他推荐答案
确保您的配置在appender以下...我们使用了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>
问题描述
I am using the following code within my project to log debug messages with log4j
private static final Logger LOG = Logger.getLogger(MyClass.class) // ... if(LOG.isDebugEnabled()) { LOG.debug("my log message"); }
I can confirm that my log4j configuration is correct by adding a break point at the line where the debug message is written, i.e. LOG.isDebugEnabled() does return true. Interestingly, my debug message does not show up in the console of my IDE (IntelliJ), however when changing LOG.debug() to LOG.info(), the info message is logged as expected.
Any ideas what I should be looking for in order to find out what's going wrong here?
EDIT: here's my log4j.properties file
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
Should be:
log4j.appender.Stdout.threshold=debug
You just set the console threshold to be info, so you're not getting debug level logs.
Be aware you also set the RollingFileAppender threshold to info as @Stephen C commented.
其他推荐答案
Make sure your configuration has below appender...We have used log4j.xml so i am adding from 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>