如何关闭zookeeper日志信息?

时间:2015-03-26 20:18:44

标签: c logging apache-zookeeper

我正在使用zookeeper c客户端库。当我运行我的程序时,它会输出ZOO_INFO到控制台。部分日志消息如下所示:

  

2015-03-26 20:08:22,115:15978(0x7f83a1fbc740):ZOO_INFO @ log_env @ 712:客户端环境:zookeeper.version = zookeeper C客户端3.4.6

     

2015-03-26 20:08:22,115:15978(0x7f83a1fbc740):ZOO_INFO @ log_env @ 716:客户端环境:host.name = myhost

     

2015-03-26 20:08:22,115:15978(0x7f83a1fbc740):ZOO_INFO @ log_env @ 723:客户端环境:os.name = Linux

     

2015-03-26 20:08:22,115:15978(0x7f83a1fbc740):ZOO_INFO @ log_env @ 724:客户端环境:os.arch = 3.2.0-34-generic

     

2015-03-26 20:08:22,115:15978(0x7f83a1fbc740):ZOO_INFO @ log_env @ 725:客户端环境:os.version =#53-Ubuntu SMP Thu 11月15日10:48:16 UTC

     

2015-03-26 20:08:22,115:15978(0x7f83a1fbc740):ZOO_INFO @ log_env @ 733:客户端环境:user.name = myname

     

...

我可以使用 zoo_set_log_stream(m_zklog); 将这些消息输出到某些日志文件。但我更喜欢关闭所有日志消息。我还尝试了 zoo_set_debug_level(ZOO_LOG_LEVEL_ERROR); 。但它无法关闭所有消息。 有什么想法吗?

2 个答案:

答案 0 :(得分:1)

FILE* outfile =  fopen ("nul", "w");
  zoo_set_log_stream(outfile);

答案 1 :(得分:-1)

使用C API zoo_set_debug_level()(例如zoo_set_debug_level((ZooLogLevel)0))。但是在zookeeper_init()之前调用这个函数,否则它会失败。