Форматирование выходных данных отладчика Windows Boost log

#c #boost #boost-log

#c #ускорение #boost-log

Вопрос:

Как описано в Boost docs, Boost.log может выводить сообщения в выходные данные отладки Windows, видимые в Visual Studio / DbgView

В примере Boost показано, как создать приемник и добавить его в ведение журнала:

 typedef sinks::synchronous_sink< sinks::debug_output_backend > sink_t;
void init_logging()
{
    boost::shared_ptr< logging::core > core = logging::core::get();
    // Create the sink. The backend requires synchronization in the frontend.
    boost::shared_ptr< sink_t > sink(new sink_t());
    // Set the special filter to the frontend
    // in order to skip the sink when no debugger is available
    sink->set_filter(expr::is_debugger_present());
    core->add_sink(sink);
}
  

Но как настроить форматирование сообщения? Для вывода на консоль и в файл это выглядит просто, но не для вывода отладки Windows

Комментарии:

1. Нет никакой разницы с другими приемниками, форматирование настраивается таким же образом.

2. @AndreySemashev, я попробовал это, прежде чем спрашивать, и это не работает. debug_output_backend имеет только конструктор по умолчанию — он не принимает никаких «ключевых слов», как это делают другие серверные части. Но debug_output_backend является производным от basic_formatted_sink_backend , так что это должно быть возможно каким-то образом. У вас есть какой-нибудь образец?

3. Форматирование реализуется интерфейсом, именно интерфейс принимает format ключевое слово. Вы также можете использовать set_formatter для настройки форматирования.