2012-03-09 11 views
14

Tengo algunas pruebas de unidad de rendimiento que crean una cantidad irracional de registros que realmente no me importan y que de hecho están afectando el rendimiento. ¿De alguna manera puedo elevar el nivel de registro en logback en el método Before para esa prueba unitaria solamente (y restaurarla en After)? ¿O hay una mejor manera de abordar eso?¿Cómo cambiar el nivel de registro de logback programáticamente en Java?

Respuesta

28

Esto funciona para mí:

public static void setLoggingLevel(Level level) { 
    ch.qos.logback.classic.Logger root = (ch.qos.logback.classic.Logger) org.slf4j.LoggerFactory.getLogger(ch.qos.logback.classic.Logger.ROOT_LOGGER_NAME); 
    root.setLevel(level); 
} 

Luego, en su prueba, si desea que todos los niveles, por ejemplo:

setLoggingLevel(Level.ALL); 
+2

Es simplemente la programación descuidada que los fabricantes de estas aplicaciones no proporcionan una API para establecer el nivel de registro y, en su lugar, forzar al usuario a buscar la implementación que está en uso. – Jason

Cuestiones relacionadas