How can I suppress INFO logs in an HBase client application?

╄→尐↘猪︶ㄣ 提交于 2019-12-18 12:29:17

问题


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?

  1. From the server, where hbase is installed, go to the $HBASE_HOME/conf
  2. open the log4j.properties file
  3. 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

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!