В boost :: log, как повторно подключиться к удаленному серверу (например, logstash)?

Используя boost::asio::ip::tcp::iostream а также boost::logЯ пытаюсь отправить записи журнала на удаленный сервер, например logstash. Но мне нужно обрабатывать отключение / переподключение сети. К сожалению, я не нашел пути для tcp::iostream,

  1. Можно ли получить уведомление или исключение при разрыве соединения TCP?
  2. Могу ли я использовать 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);

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]