在Boost.Log中过滤非平凡的记录器?

时间:2013-10-06 21:48:49

标签: c++ logging boost filtering

我试图弄清楚如何与BOOST_LOG_SEV结合使用简单的过滤器。

例如,如果我设置了这样的东西:

enum class SeverityLevel {
  Foo,
  Bar
};

boost::log::sources::severity_logger_mt<SeverityLevel> slg;

BOOST_LOG_SEV(slg, SeverityLevel::Foo) << "Foo log record";
BOOST_LOG_SEV(slg, SeverityLevel::Bar) << "Bar log record";

我希望能够添加以下内容:

slg.set_minimum_severity(SeverityLevel::Bar);  // Filter out Foo logs

Boost.Log文档可以快速从过滤琐碎日志到更复杂的案例。

1 个答案:

答案 0 :(得分:1)

首先,您可能想要了解有关阅读升级日志文档的一个小秘密,即代码示例比文档页面上的摘要要完整得多。如果我理解你,你应该对

中的例子感到满意

http://www.boost.org/doc/libs/1_54_0/libs/log/example/doc/tutorial_filtering.cpp

查找set_filter行,并将其修改为:

sink->set_filter(severity >= SeverityLevel::Bar);

对于更高级的过滤器,我刚刚提出了有关提升用户邮件列表的相关问题:

http://lists.boost.org/boost-users/2013/10/80211.php