#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
для настройки форматирования.