【问题标题】:how to turn off zookeeper log info?如何关闭动物园管理员日志信息?
【发布时间】:2016-11-30 22:47:34
【问题描述】:

我正在使用 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 Nov 15 10:48:16 UTC 2012

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);。但它不能关闭所有的消息。 有什么想法吗?

【问题讨论】:

    标签: c logging apache-zookeeper


    【解决方案1】:
    FILE* outfile =  fopen ("nul", "w");
      zoo_set_log_stream(outfile);
    

    【讨论】:

    • 这是 linux 上的 windows 你可以使用 /dev/null
    • 你可以这样写:zoo_set_log_stream(fopen("NULL", "w"));
    • if (!m_zkLogFile) { zoo_set_debug_level( (ZooLogLevel)0); #ifdef WIN32_OS m_zkLogFile = fopen ("nul", "w"); #else m_zkLogFile = fopen ("/dev/null", "w"); #endif zoo_set_log_stream(m_zkLogFile); } 这行得通...
    【解决方案2】:

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

    【讨论】:

    • 唯一有效的参数如下:# only used by the C extension ZOO_LOG_LEVEL_ERROR = 1 ZOO_LOG_LEVEL_WARN = 2 ZOO_LOG_LEVEL_INFO = 3 ZOO_LOG_LEVEL_DEBUG = 4
    • @serup,你能提供更多细节吗?我很早以前就用过这个功能....但它确实有效。
    • 我在 ubuntu 16.04lts 构建中尝试不带参数,但它无法编译 - 所以也许事情已经改变 - 我最终改用它:zoo_set_log_stream(fopen("NULL", "w"));
    • @serup 我的回答有点令人困惑。 Use zoo_set_debug_level() 表示 zoo_set_debug_level(<parameters>),例如zoo_set_debug_level((ZooLogLevel)0)。我回答的重点是该函数应该在zookeeper_init()之前调用,否则它无法工作。我的答案更新了。很抱歉造成混乱。
    • @serup,我只是举了一个例子,zoo_set_debug_level() 有输入参数。我们正在使用不同版本的客户端。只需根据您的文档添加参数即可。上面的例子在我们的代码中运行良好,我没有给出所有的上下文,这对我的观点并不重要。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-14
    • 2015-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-01
    相关资源
    最近更新 更多