【问题标题】:librdkafka c++ API custom logger functionlibrdkafka c++ API 自定义记录器函数
【发布时间】:2017-01-21 18:33:00
【问题描述】:

我正在使用 librdkafka c++ API,我想更改记录器的默认行为(默认为 stderr)。

配置文档中列出了我可以更改 log_cb 函数,但我在 c++ API 中找不到如何执行此操作。

在c API中有这个函数rd_kafka_conf_set_log_cb()来设置日志回调。

此外,我希望能够更改日志严重级别。

【问题讨论】:

    标签: c++ logging apache-kafka


    【解决方案1】:

    librdkafka C++ API 通过通用事件类型公开日志、统计信息、限制等。

    Here is an example如何使用。 摘录:

    class ExampleEventCb : public RdKafka::EventCb {
     public:
      void event_cb (RdKafka::Event &event) {
        switch (event.type())
        {
          case RdKafka::Event::EVENT_LOG:
            fprintf(stderr, "LOG-%i-%s: %s\n",
                    event.severity(), event.fac().c_str(), event.str().c_str());
            break;
    
          default:
        }
      }
    };
    
    ...
    
    ExampleEventCb ex_event_cb;
    conf->set("event_cb", &ex_event_cb, errstr);
    

    关于日志级别/严重性:您可以配置log_level 以抑制更高级别(不太重要)的日志消息。

    【讨论】:

      猜你喜欢
      • 2022-01-04
      • 2018-11-24
      • 1970-01-01
      • 2016-11-04
      • 2023-03-12
      • 1970-01-01
      • 1970-01-01
      • 2013-01-09
      • 2016-10-27
      相关资源
      最近更新 更多