2015-10-12 42 views
6

Jak wyciszyć logi debugowania w http komponentach?Silence Debug Logowanie w HTTPComponents

09:23:22.145 [main] DEBUG o.a.h.c.protocol.RequestAddCookies - CookieSpec selected: default 
09:23:22.145 [main] DEBUG o.a.h.c.protocol.RequestAuthCache - Auth cache not set in the context 
09:23:22.145 [main] DEBUG o.a.h.i.c.PoolingHttpClientConnectionManager - Connection request: [route: {}->http://example.org:80][total kept alive: 1; route allocated: 1 of 100; total allocated: 1 of 200] 
09:23:22.145 [main] DEBUG o.a.h.i.c.PoolingHttpClientConnectionManager - Connection leased: [id: 0][route: {}->http://diagnostics-uat.corp.apple.com:80][total kept alive: 0; route allocated: 1 of 100; total allocated: 1 of 200] 
09:23:22.145 [main] DEBUG o.a.h.impl.execchain.MainClientExec - Executing request POST /evt/detect HTTP/1.1 
09:23:22.145 [main] DEBUG o.a.h.impl.execchain.MainClientExec - Target auth state: UNCHALLENGED 
09:23:22.145 [main] DEBUG o.a.h.impl.execchain.MainClientExec - Proxy auth state: UNCHALLENGED 
09:23:22.145 [main] DEBUG org.apache.http.headers - http-outgoing-0 >> POST /evt/detect HTTP/1.1 
09:23:22.145 [main] DEBUG org.apache.http.headers - http-outgoing-0 >> Content-Length: 92 

Próbowałem rozwiązanie oparte kodu:

static { 
    System.setProperty("org.apache.commons.logging.Log", "org.apache.commons.logging.impl.SimpleLog"); 
    System.setProperty("org.apache.commons.logging.simplelog.log.org.apache.http", "warn"); 
} 

public static void main(String[] args) throws Exception { 

I to log4j.properties

log4j.rootLogger=INFO, stdout 

log4j.appender.stdout=org.apache.log4j.ConsoleAppender 
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 
log4j.appender.stdout.layout.ConversionPattern=%5p [%c] %m%n 

log4j.logger.org.apache.http=WARN 
log4j.logger.org.apache.http.wire=WARN 

Ale nie pracował. Pomoc jest doceniana, dzięki!

Odpowiedz

1

Twoje ustawienia są poprawne możliwe przyczyny może być inny plik konfiguracyjny log4j znajduje się w ścieżce klasy i przesłanianie konfiguracji. Więc zalecam to. - Upewnij się, że plik log4j.properties znajduje się w ścieżce klas. aby zobaczyć pliki otwarte przez proces (zakładając UNIX)

lsof -p java-process-pid | grep log4j 
  • Szukaj log4j.properties w folderach uruchomieniowych i pozbyć się wszystkich duplikatów plików (jeśli to możliwe) wykorzystują poniżej poleceniem - inaczej je wszystkie zmiany.
  • Wyszukaj log4j.xml i wykonaj to samo.
  • Czasami widziałem słoiki osób trzecich, które dostarczane są z log4j.xml lub log4j.properties więc w najgorszym przypadku wyboru dla wszystkich słoików za pomocą poniższego polecenia

    słoik -tvf a.jar | grep log4j

+0

Znaleźliśmy nam potrzebne logback.xml w naszej ścieżce klasy. –

0

Programowo, można go ustawić z cicha:

(Apache HttpComponents 4.3.5)

import org.apache.log4j.Level; 
import org.apache.log4j.Logger; 

... 

Logger.getLogger("org.apache.http")  .setLevel(Level.WARN); 
Logger.getLogger("org.apache.http.wire") .setLevel(Level.WARN); 
Logger.getLogger("org.apache.http.headers").setLevel(Level.WARN);