2013-05-24 15 views
10

Piszę aplikacji konsoli Java, który uzyskuje dostęp HBase, i nie mogę dowiedzieć się, jak pozbyć się wszystkich irytujących komunikatów INFO:Jak mogę wyłączyć dzienniki INFO w aplikacji klienckiej HBase?

13/05/24 11:01:12 INFO zookeeper.ZooKeeper: Client environment:zookeeper.version=3.4.5-1392090, built on 09/30/2012 17:52 GMT 
13/05/24 11:01:12 INFO zookeeper.ZooKeeper: Client environment:host.name=10.1.0.110 
13/05/24 11:01:12 INFO zookeeper.ZooKeeper: Client environment:java.version=1.7.0_15 
13/05/24 11:01:12 INFO zookeeper.ZooKeeper: Client environment:java.vendor=Oracle Corporation 
13/05/24 11:01:12 INFO zookeeper.ZooKeeper: Client environment:java.home=/Library/Java/JavaVirtualMachines/jdk1.7.0_15.jdk/Contents/Home/jre 

etc ...

Próbowałem kilka różnych rzeczy z samego kodu klienta, ale żaden z oczywistych sposobów nie zadziałał na mnie.

Jest to przykład czegoś, co nie działa:

Logger log = Logger.getLogger("log4j.logger.org.apache.zookeeper"); 
log.setLevel(Level.WARN); 

Odpowiedz

13

Możesz pozbyć zalogowaniu pakietów jeden po drugim, np

Logger.getLogger("org.apache.zookeeper").setLevel(Level.WARN); 
Logger.getLogger("org.apache.hadoop.hbase.zookeeper").setLevel(Level.WARN); 
Logger.getLogger("org.apache.hadoop.hbase.client").setLevel(Level.WARN); 

Albo po prostu manipulować rootlogger :

Logger.getRootLogger().setLevel(Level.WARN); 

Uwaga: testowany na HBase 0.94.5

+1

ten pracował: Logger.getRootLogger() setLevel (Level.WARN). –

4

Inną rzeczą do zrobienia jest zmiana pliku $ HBASE_HOME/conf/log4j.properties w celu wyłączenia logów. Osobiście uważam, że jest to najlepsze podejście, ponieważ zmienia poziom logowania na serwerze i kliencie.

Jak to zrobić?

  1. z serwera, na którym jest zainstalowany HBase, przejdź do $ HBASE_HOME/conf
  2. otworzyć plik log4j.properties
  3. zmienić konfigurację jak trzeba

Jeśli don” wiem zbyt wiele o pliku konfiguracyjnego log4j można dowiedzieć się, że albo po prostu wstawić następujący wiersz

  • log4j.threshold = WARN

Taka konfiguracja wydrukuje tylko komunikat OSTRZEŻENIE, można użyć dowolnego żądanego poziomu.

Mam nadzieję, że to pomoże.

3
log4j.logger.org.apache.zookeeper=WARN 
log4j.logger.org.apache.hadoop.hbase.zookeeper=WARN 
log4j.logger.org.apache.hadoop.hbase.client=WARN 

w log4j.properties

Powiązane problemy