Boost Log Scoped Log / Attributes未显示

时间:2015-05-18 15:18:35

标签: c++ logging boost

我正在尝试将Boost Log用于我的日志记录框架,而且我遇到了一些问题。我有严重记录器工作正常。但是,我想要做的是在我的日志消息中添加自定义标记,以便我可以跟踪消息来自哪个类/模块。不幸的是,无论我做什么,额外的痕迹都不会出现!

boost::log::core::get()->add_global_attribute("Scope", boost::log::attributes::named_scope());
BOOST_LOG_NAMED_SCOPE("named_scope_logging");
BOOST_LOG(Logger::get()) << "Hello";
BOOST_LOG_SCOPED_THREAD_TAG("Tag", "Called from A::bar");
BOOST_LOG(Logger::get()) << "Hello";

基本上,以上都不会对日志输出产生任何形式的修改。我必须遗漏一些非常基本的东西......

1 个答案:

答案 0 :(得分:2)

您可能忘记将这些属性添加到格式化程序中。例如,命名范围格式化程序记录为hereBOOST_LOG_SCOPED_THREAD_TAG添加了一个字符串属性,可以使用简单的attr expression格式化。例如:

sink->set_formatter
(
  expr::stream << "["
    << expr::format_named_scope("Scope", keywords::format = "%n")
    << "] ("
    << expr::attr< std::string >("Tag")
    << ") " << expr::smessage
);
相关问题