gpt4 book ai didi

C++ : How to use SocketAppender of log4cplus to send logs to logstash server?

转载 作者:太空宇宙 更新时间:2023-11-04 12:52:01 25 4
gpt4 key购买 nike

我正在尝试使用 log4cplus 库将我的 C++ 应用程序的日志发送到 logstash。我已阅读 log4cplus 文档并使用以下配置来配置 SocketAppender。

log4cplus.rootLogger=INFO, SA
log4cplus.appender.SA=log4cplus::SocketAppender
log4cplus.appender.SA.port=5044
log4cplus.appender.SA.host=127.0.0.1
log4cplus.appender.SA.serverName=MyServer
log4cplus.appender.SA.layout=log4cplus::PatternLayout
log4cplus.appender.SA.layout.ConversionPattern=%m%n

在代码中,我已经初始化了记录器并尝试将消息发送到记录器。

PropertyConfigurator config(configFile);
config.configure();
std::string msg = "test msg";
Logger root = Logger::getRoot();
LOG4CPLUS_INFO(root,msg);

但是我没有在 logstash 服务器上收到预期的消息。我得到了一些垃圾数据,如下所示。

{ "@version" => "1", "host" => "localhost", "message" => "\u0000\u0000\u0000q\u0003\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0004root\u0000\u0000N \u0000\u0000\u0000\u0000\u0000\u0000\u0000\btest msg\u0000\u0000\u0000\u000F140382836238144Z{\u0014N\u0000\u0004\u0003\xC0\u0000\u0000\u0000\u0013../src/property.cpp\u0000\u0000\u00002\u0000\u0000\u0000\u0015int main(int, char**)", "@timestamp" => 2018-02-07T14:59:26.284Z, "port" => 47148 }

我已经阅读了 log4cplus 的文档并尝试了一些配置更改,但没有任何效果。我可以使用 netcat 命令将日志发送到 logstash 服务器。所以至少我确定我的 logstash 配置是正确的。我已经使用以下 conf 文件配置了 logstash。

input {
tcp {
port => 5044
}
}

filter{
}

output {
stdout {
codec => rubydebug
}
}

谁能告诉我我在使用 log4cplus 时做错了什么?是否可以使用 log4cplus 将日志发送到 logstash 服务器?

最佳答案

log4cplus::SocketAppender 特定于 Log4cplus。如果您想登录到 Logstash,您将必须创建自己的附加程序来执行此操作。

关于C++ : How to use SocketAppender of log4cplus to send logs to logstash server?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48667214/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com