2012-12-16 8 views
6

Używam wbudowanego Jetty 9, z plikiem slf4j.jar na ścieżce. Domyślnie pomost rejestruje mnóstwo informacji.Jak programować rejestrowanie przystani 9 programowalnie?

Chciałbym wyłączyć rejestrowanie lub przynajmniej zmienić poziom rejestrowania na INFO. Jak mogę to zrobić w programie (tzn. Bez wstawiania pliku konfiguracyjnego xml)?

+0

Dlaczego warto unikać pliku XML/właściwości? Są dobrym sposobem na manipulowanie poziomami dziennika. Podejście programistyczne do tego jest złe, ponieważ musiałbyś przekompilować, aby zmienić poziom logu !!!!! – SSR

+0

Chyba że zaimplementujesz jakiś sposób, aby użytkownik sam zmienił poziom, za pomocą GUI lub TUI? Nie możesz powiedzieć w taki czy inny sposób, co programista powinien ZROBIĆ, chyba że wiesz, JAK zamierzają go użyć. – Fallso

Odpowiedz

12

Nie ma możliwości użycia prostej funkcji slf4j do ustawienia poziomu Logger, ponieważ slf4j jest po prostu interfejsem API fasady/routingu.

Trzeba by polegać na realizacji podstawowych rejestrowania, aby ustawić poziom rejestrowania na przestrzeni nazw „org.eclipse.jetty” takich jak:

  • przypadku korzystania slf4j-simple.jar i SimpleLogger, wtedy nie można ustawić poziomu programowo, tylko za pośrednictwem właściwości systemu po zainicjowaniu SimpleLogger, co jest bardzo wczesnym etapem JVM.

  • Jeśli używasz slf4j-log4j.jar, użyj Log4j specific techniques.

org.apache.log4j.LogManager.getLogger("org.eclipse.jetty").setLevel(Level.WARN); 
  • przypadku korzystania SLF4J-jdk14.jar użyć technik java.util.logging.
java.util.logging.LoggerFactory.getLogger("org.eclipse.jetty").setLevel(Level.WARNING); 
  • W przypadku korzystania logback.jar, rzucić Logger slf4j do logback Logger a następnie ustaw poziom.
final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger("org.eclipse.jetty"); 
if (!(logger instanceof ch.qos.logback.classic.Logger)) { 
    return; 
} 
ch.qos.logback.classic.Logger logbackLogger = (ch.qos.logback.classic.Logger) logger; 
logbackLogger.setLevel(ch.qos.logback.classic.Level.WARN); 
Powiązane problemy