在boost :: log中,如何重新连接到远程服务器(如logstash)?

时间:2016-07-20 21:36:23

标签: c++ logging boost logstash boost-logging

通过使用boost::asio::ip::tcp::iostreamboost::log,我尝试将日志记录发送到logstash等远程服务器。但我需要处理网络断开/重新连接。不幸的是,我找不到tcp::iostream的任何方法。

  1. 当tcp连接断开时是否可以获得通知或异常?
  2. 我可以在ip::tcp::socket中使用tcp::iostream代替boost::log吗? 谢谢。
  3. 我的代码如下:

    typedef boost::log::sinks::asynchronous_sink< boost::log::sinks::text_ostream_backend > tcp_sink;
    boost::shared_ptr< tcp_sink > networkSink;
    
    // init tcp stream
    boost::shared_ptr< sinks::text_ostream_backend > backend =
        boost::make_shared< sinks::text_ostream_backend >();
    
    boost::shared_ptr< boost::asio::ip::tcp::iostream > stream =    boost::make_shared< boost::asio::ip::tcp::iostream >();
    stream->connect("logstash", "1111");
    
    
    backend->add_stream(stream);
    
    networkSink = boost::make_shared< tcp_sink >();
    networkSink->set_formatter(fmt);
    networkSink->set_filter(severity <= severityThreshold); 
    networkSink = boost::make_shared<tcp_sink>(backend );
    logging::core::get()->add_sink(networkSink);
    

0 个答案:

没有答案
相关问题