Как изменить форматирование по умолчанию с помощью boost:: log:: BOOST_TRIVIAL_LOG?

boost:: log выглядит очень мощным. Он предлагает макрос BOOST_LOG_TRIVIAL для тривиального ведения журнала. Но как я могу изменить форматирование по умолчанию? Он печатает метку времени по умолчанию, я не хочу этого. Есть ли у вас какие-либо идеи? Кажется, единственный способ определить новый приемник ex-novo и добавить его в ядро, тогда вы можете вызвать set_format() на бэкэнд в случае. Но это уже не "тривиально".

Ответ 1

Boost.Log имеет приемник по умолчанию, который используется до тех пор, пока вы не предоставляете свой собственный приемник. Следующий фрагмент кода изменяет формат консольного журнала, добавляя новый приемник.

#include <boost/log/trivial.hpp>
#include <boost/log/utility/setup/console.hpp>

int main()
{
    boost::log::add_console_log(std::cout, boost::log::keywords::format = ">> %Message%");
    BOOST_LOG_TRIVIAL(info) << "Hello world!";
}

Обратите внимание, что вам нужно добавить библиотеку log_setup в свою сборку, т.е. сделать

-lboost_log_setup -lboost_log

где порядок libs важен.