11

我正在编写一个访问 HBase 的 Java 控制台应用程序,但我不知道如何摆脱所有烦人的 INFO 消息:

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...

我从客户端代码本身尝试了几种不同的方法,但没有一种明显的方法对我有用。

这是一个不起作用的例子:

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

3 回答 3

14

您可能会摆脱一一记录软件包,例如:

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

或者只是简单地操作 rootlogger:

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

注意:在 HBase 0.94.5 上测试

于 2013-05-25T13:05:18.613 回答
4

另一件事是更改 $HBASE_HOME/conf/log4j.properties 文件以禁用日志。我个人认为这是最好的方法,因为它会改变服务器和客户端的日志级别。

怎么做?

  1. 从安装 hbase 的服务器,转到 $HBASE_HOME/conf
  2. 打开 log4j.properties 文件
  3. 根据需要更改配置

如果您对 log4j 配置文件不太了解,您可以了解这一点,或者只需插入以下行

  • log4j.threshold=警告

这样的配置只会打印警告信息,你可以使用任何你想要的级别。

希望这能有所帮助。

于 2014-09-19T02:59:15.550 回答
4
log4j.logger.org.apache.zookeeper=WARN
log4j.logger.org.apache.hadoop.hbase.zookeeper=WARN
log4j.logger.org.apache.hadoop.hbase.client=WARN

在 log4j.properties

于 2015-10-02T08:23:36.703 回答