我正在使用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); 。但它无法关闭所有消息。 有什么想法吗?
答案 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()之前调用这个函数,否则它会失败。