如何启用librdkafka将日志发送到syslog

mbyulnm0  于 2021-06-07  发布在  Kafka
关注(0)|答案(0)|浏览(371)

我查看了librdkafka文档,它说set\u log\u cb可用于启用librdkafka的系统日志记录“日志是通过默认为stderr writer的log\u cb记录的,还有一个内置的系统日志编写器,您可以用set\u log\u cb()配置。”。我不知道该怎么做。

std::unique_ptr<RdKafka::Conf> conf(RdKafka::Conf::create(RdKafka::Conf::CONF_GLOBAL));
std::unique_ptr<RdKafka::Conf> tconf(RdKafka::Conf::create(RdKafka::Conf::CONF_TOPIC));

conf->set("metadata.broker.list", brokers, errstr);
conf->set("bootstrap.servers", brokers, errstr);

// Set a termination signal which should make shutdown faster
char tmp[16];
snprintf(tmp, sizeof(tmp), "%i", SIGKILL);
conf->set("internal.termination.signal", tmp, errstr);

conf->set("topic.metadata.refresh.interval.ms","3000", errstr);
conf->set("default_topic_conf", tconf.get(), errstr);

conf->set("debug", "all", errstr);

为什么我要伐木。如果您看到上面的配置,我正在使用终止信号来停止kafka线程,但是它无法正常工作,我的进程get被卡在下面的函数调用中,最终被杀死。

if (thrd_join(thrd, NULL) != thrd_success)
            rd_kafka_log(rk, LOG_ERR, "DESTROY",
                         "Failed to join main thread: %s "
                         "(was process forked?)",
                         rd_strerror(errno));

如果我可以启用系统日志记录,我可以看到发生了什么,并进一步调试它。谢谢你的帮助。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题