如何使用boost :: log :: BOOST_TRIVIAL_LOG更改默认格式?

Mar*_*tin 11 c++ boost

boost :: log看起来非常强大.它为琐碎的日志记录提供了一个BOOST_LOG_TRIVIAL宏.但是如何更改默认格式?它默认打印时间戳,我不想要它.你有什么主意吗?似乎唯一的方法是从头部定义一个新的接收器并将其添加到核心,然后你可以在后端调用set_format()以防万一.但这不再是"微不足道的"了.

Meh*_*olf 16

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!";
}
Run Code Online (Sandbox Code Playgroud)

请注意,您必须将log_setup库添加到构建中,即执行a

-lboost_log_setup -lboost_log
Run Code Online (Sandbox Code Playgroud)

lib的顺序很重要.