2013-05-24 15 views
10

Sto scrivendo un'applicazione console Java che accede HBase, e io non riesco a capire come sbarazzarsi di tutti i messaggi INFO fastidiosi:Come posso eliminare i registri INFO in un'applicazione client 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 

ecc ...

ho provato molte cose diverse dal codice client stesso, ma nessuno dei modi più ovvi ha funzionato per me.

Questo è un esempio di qualcosa che non ha funzionato:

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

risposta

13

Si può sbarazzarsi di registrare i pacchetti uno per uno, per esempio:

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

O semplicemente manipolare la rootlogger :

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

Nota: testato su HBase 0.94.5

+1

questo ha funzionato: Logger.getRootLogger() setLevel (Level.WARN);. –

4

Un'altra cosa da fare è modificare il file $ HBASE_HOME/conf/log4j.properties per disabilitare i log. Personalmente ritengo che questo sia l'approccio migliore perché modifica il livello di registro sia sul server che sul client.

Come fare?

  1. Dal server, in cui è installato HBase, vanno al $ HBASE_HOME/conf
  2. Aprire il file log4j.properties
  3. cambiamento della configurazione di cui hai bisogno

Se don' Sappiamo troppo sul file di configurazione di log4j che puoi conoscere, o semplicemente inserisci la seguente riga

  • log4j.threshold = WARN

Tale configurazione stamperà solo il messaggio di AVVISO, è possibile utilizzare qualsiasi livello desiderato.

Spero che questo possa essere d'aiuto.

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

in log4j.properties