Désactive la sortie de log4j pendant les tests unitaires

Il est de pratique courante pour obtenir des enregistreurs via statique-usine (bien que totalement brokes DI principe). Et en fait, c'est bien, à moins que vous souhaitez vous débarrasser de l'exploitation forestière totalement, par exemple, lors de l'exécution de l'unité-tests.

J'ai été en mesure de couper log4j de journalisation, en utilisant la suite sort:

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

Encore il affiche des informations de configuration de la console dans le tout début:

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].
...

Comment puis-je désactiver ainsi, par programmelors de l'exécution des tests unitaires suite?

source d'informationauteur Denis Kulagin