Как я могу подавить журналы INFO в клиентском приложении HBase?
Я пишу консольное приложение Java, которое обращается к HBase, и я не могу понять, как избавиться от всех раздражающих сообщений 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
и т.д...
Я пробовал несколько разных вещей из самого клиентского кода, но ни один из очевидных способов не работал у меня.
Это пример того, что не сработало:
Logger log = Logger.getLogger("log4j.logger.org.apache.zookeeper");
log.setLevel(Level.WARN);
Ответы
Ответ 1
Вы можете избавиться от регистрации пакетов по одному, например:
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);
Или просто манипулируйте корнеологом:
Logger.getRootLogger().setLevel(Level.WARN);
Примечание: проверено на HBase 0.94.5
Ответ 2
Еще одна вещь, которую нужно сделать, - это изменить файл $HBASE_HOME/conf/log4j.properties, чтобы отключить журналы.
Лично я считаю, что это лучший подход, потому что он меняет уровень журнала как на сервере, так и на клиенте.
Как это сделать?
- На сервере, где установлен hbase, перейдите в $HBASE_HOME/conf
- откройте файл log4j.properties
- измените конфигурацию по мере необходимости
Если вы не слишком много знаете о файле конфигурации log4j, вы можете узнать это или просто вставить следующую строку
Такая конфигурация будет печатать только сообщение WARNING, вы можете использовать любой уровень, который вы хотите.
Надеюсь, это поможет.
Ответ 3
log4j.logger.org.apache.zookeeper=WARN
log4j.logger.org.apache.hadoop.hbase.zookeeper=WARN
log4j.logger.org.apache.hadoop.hbase.client=WARN
в log4j.properties