14

プロジェクト内で次のコードを使用して、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
4

2 に答える 2

10
log4j.appender.Stdout.threshold=info

する必要があります:

log4j.appender.Stdout.threshold=debug

コンソールのしきい値をinfoに設定しただけなので、デバッグレベルのログは取得されません。

@Stephen Cがコメントしたように、RollingFileAppenderのしきい値もinfoに設定していることに注意してください。

于 2013-02-26T10:41:33.300 に答える
1

構成が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>
于 2013-02-26T10:40:20.400 に答える