Deaktivieren Sie die log4j-Ausgabe während der unit-tests

Es ist gängige Praxis, erhalten Logger über die statische factory (obwohl es Total brokes DI-Prinzip). Und tatsächlich, es ist in Ordnung, es sei denn, Sie möchten, um loszuwerden, der Protokollierung völlig, z.B. während der Ausführung von unit-tests.

Konnte ich ausschalten log4j Protokollierung mit den folgenden Zauber:

 List<Logger> loggers = Collections.<Logger>list(LogManager.getCurrentLoggers());
 loggers.add(LogManager.getRootLogger());
 for (Logger logger : loggers) {
     logger.setLevel(Level.OFF);
 }

Immer noch druckt es einige setup-info in der Konsole den Anfang:

log4j: reset attribute= "false".
log4j: Threshold ="null".
log4j: Retreiving an instance of org.apache.log4j.Logger.
log4j: Setting [test] additivity to [false].
log4j: Level value for test is  [DEBUG].
...

Wie deaktiviere ich es als gut, programmgesteuertwährend der Ausführung von unit-test-suite?

InformationsquelleAutor der Frage Denis Kulagin | 2014-09-18

Schreibe einen Kommentar