2012-03-09 6 views
14

Mam kilka testów wydajności jednostek, które tworzą nieuzasadnioną ilość dzienników, których tak naprawdę nie obchodzi i faktycznie wpływają na wydajność. Czy mogę w jakiś sposób podnieść poziom dziennika w logbackach w metodzie Before tylko dla tego testu jednostkowego (i przywrócić go w After)? Czy istnieje lepszy sposób na rozwiązanie tego problemu?Jak programowo zmieniać poziom dziennika logback w Javie?

Odpowiedz

28

Działa to dla mnie:

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); 
} 

Następnie w teście, jeśli chcesz wszystkie poziomy na przykład:

setLoggingLevel(Level.ALL); 
+2

To jest po prostu zaniedbany programowanie że twórcy tych aplikacji nie zapewniają API, aby ustawić poziom dziennika, a zamiast tego zmusić użytkownika do znalezienia implementacji, która jest w użyciu. – Jason

Powiązane problemy