问题
I'm writing a Java console application that accesses HBase, and I can't figure out how to get rid of all the annoying INFO messages:
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...
I have tried several different things from the client code itself, but none of the obvious ways have worked for me.
This is an example of something that didn't work:
Logger log = Logger.getLogger("log4j.logger.org.apache.zookeeper");
log.setLevel(Level.WARN);
回答1:
You may get rid of logging the packages one by one, e.g:
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);
Or just simply manipulate the rootlogger:
Logger.getRootLogger().setLevel(Level.WARN);
Note: tested on HBase 0.94.5
回答2:
Another thing to do is change the $HBASE_HOME/conf/log4j.properties file in order to disable the logs. Personally I believe this is the best approach cause it change log level on both server and client.
How to do that?
- From the server, where hbase is installed, go to the $HBASE_HOME/conf
- open the log4j.properties file
- change the configuration as you need
If you don't know too much about log4j config file you can learn that, or just insert the following line
- log4j.threshold=WARN
Such configuration will only print WARNING message, you can use whatever level you want.
Hope this can help.
回答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
来源:https://stackoverflow.com/questions/16738364/how-can-i-suppress-info-logs-in-an-hbase-client-application