【问题标题】:Boost Log Scoped Log/Attributes not showing upBoost Log Scoped Log/Attributes 未显示
【发布时间】:2015-07-30 04:20:52
【问题描述】:

我正在尝试将 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";

基本上以上都不会对日志输出产生任何形式的修改。我一定错过了一些非常基本的东西......

【问题讨论】:

    标签: c++ logging boost


    【解决方案1】:

    您可能忘记将这些属性添加到格式化程序。例如,命名范围格式化程序记录在 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
    );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-07
      • 2014-01-11
      • 2016-02-29
      • 1970-01-01
      • 1970-01-01
      • 2015-10-07
      • 2014-11-27
      相关资源
      最近更新 更多