Log4j を学習していますが、デバッグ メッセージが 2 回表示される理由を理解しようとしています。additivty について読み、ログが親 (この場合は "root") に伝達されることを理解しています。ただし、「ルート」のレベルは致命的であるため、このロギング リクエストはフィルタリングされるべきではありませんか?
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration>
<appender name="dataAccessLogger" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="conversionPattern" value="%m%n" />
</layout>
</appender>
<logger name="com.supertrooper">
<level value="debug" />
<appender-ref ref="dataAccessLogger" />
</logger>
<root>
<level value="fatal" />
<appender-ref ref="dataAccessLogger" />
</root>
</log4j:configuration>
コード:
// Field in class
private static Logger logger = Logger.getLogger(Log4JTesting.class);
// How I use it
logger.debug("Hello world!-----------------");