【发布时间】:2013-04-25 20:41:50
【问题描述】:
我正在尝试让 Boost.Log 进入我的项目。问题来自简单示例的以下行:
using namespace boost::log;
core::get()->set_filter
(
trivial::severity >= trivial::info
);
在我的代码中,这转换为以下内容:
boost::log::core::get()->set_filter(
boost::log::trivial::severity >= boost::log::trivial::info
);
但是,我收到以下错误:
error C2039: 'severity' : is not a member of 'boost::log::v2s_mt_nt5::trivial'
error C2065: 'severity' : undeclared identifier
我正在搜索命名空间,试图找出我应该如何做到这一点,但我并没有真正找到任何有效的方法。这似乎需要一些疯狂的 lambda 函数。我可以选择一些替代方案(定义一个填充过滤级别的函数?),但我不确定如何实现这一点。有什么想法吗?
我正在使用 Boost.Log 版本 2.0-r862 和 Boost 1.53.0。
解决方案:Ryan 指出我应该检查我的包含,果然我只包含 trivial.hpp,但 core.hpp 和 expressions.hpp 也需要作为包含。包括他们解决了问题。
// need at least these 3 to get "trivial" to work
#include <boost/log/core.hpp>
#include <boost/log/expressions.hpp>
#include <boost/log/trivial.hpp>
【问题讨论】:
-
嘿,土豚,我无法过滤严重性。我的问题在这里:stackoverflow.com/q/29707017/1735836