Dies ist eine weitere Option, wenn Sie die Funktion "Additivität" nicht verwenden möchten.
In meinem Fall (und meistens auch in Ihrem Fall) befindet sich der Root-Logger hinter diesem zusätzlichen Protokoll, und Sie haben einen anderen höheren Logger in Ihren Konfigurationen, so etwas
<Loggers>
<Logger name="com.foo.Bar" level="trace">
<AppenderRef ref="Console"/>
</Logger>
<Root level="error">
<AppenderRef ref="Console"/>
</Root>
</Loggers>
Dies führt zu doppelten Protokollen. Wenn Sie den Root-Logger überhaupt aus dieser Konfigurationsdatei entfernt haben, log4j
wird der Standard-Root-Logger erzwungen. Überprüfen Sie diesen Hinweis
Log4j stellt eine Standardkonfiguration bereit, wenn keine Konfigurationsdatei gefunden werden kann. Die in der DefaultConfiguration-Klasse bereitgestellte Standardkonfiguration wird eingerichtet:
Ein ConsoleAppender, der an den Root-Logger angehängt ist .
Ein PatternLayout, das auf das an den ConsoleAppender angehängte Muster "% d {HH: mm: ss.SSS} [% t]% -5level% logger {36} -% msg% n" festgelegt ist
Beachten Sie, dass Log4j den Root-Logger standardmäßig Level.ERROR zuweist.
Wenn Sie den Standard-Root-Logger überschreiben und erzwingen möchten, dass er nicht protokolliert wird , können Sie den Appender wie folgt aus Ihrer Konfigurationsdatei entfernen
<Root level="error">
</Root>
Dies ist nur eine weitere Option. Ich verwende jedoch gerne die empfohlene Methode und setze das Attribut "Additivität" auf den untergeordneten Logger
<Logger name="com.foo.Bar" level="trace" additivity="false">
<AppenderRef ref="Console"/>
</Logger>