Используя boost::asio::ip::tcp::iostream
а также boost::log
Я пытаюсь отправить записи журнала на удаленный сервер, например logstash. Но мне нужно обрабатывать отключение / переподключение сети. К сожалению, я не нашел пути для tcp::iostream
,
ip::tcp::socket
вместо tcp::iostream
в boost::log
?Мой код выглядит так:
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);
Задача ещё не решена.
Других решений пока нет …