【问题标题】:C++ : How to use SocketAppender of log4cplus to send logs to logstash server?C++:如何使用 log4cplus 的 SocketAppender 将日志发送到 logstash 服务器?
【发布时间】:2018-07-17 22:39:59
【问题描述】:

我正在尝试使用 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", "主机" => "本地主机", "消息" => "\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 \ u0000 \ u000f140382836238144z {\ u0014n \ u0000 \ u000000 \ u0003 \ u0003 \ xc0 \ u0000 \ u0000 \ u0000 \ u0013 ../ src / property.cpp \ u0000 \ u0000 \ u00002 \ u0000 \ u0000 \ u0000 \ u0015 主要(int,char**)“, "@timestamp" => 2018-02-07T14:59:26.284Z, “端口” => 47148 }

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

input {
  tcp {
    port => 5044
  }
}

filter{
}

output {
  stdout {
    codec => rubydebug
  }
}

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

【问题讨论】:

  • 在遇到上述问题后,使用了 SysLogAppender 来传输日志消息。但是使用此附加程序,消息会根据系统日志的格式进行更改。但是 SysLogAppender 达到了我的目的。

标签: c++ logging logstash log4cplus


【解决方案1】:

log4cplus::SocketAppender 特定于 Log4cplus。如果你想登录 Logstash,你必须创建自己的 appender 来做到这一点。

【讨论】:

  • 我是 log4cplus 的新手。有没有创建自定义附加程序的示例?我也试过 SyslogAppender。尽管它正在发送消息,但它会在每条消息之前添加某些预定义的格式。所以logstash无法解析json
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-12-20
  • 2019-11-09
  • 2015-02-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多