使用过滤器增强日志记录
boost logging with filters
我是boost日志的新手,并试图使带有过滤器的琐碎日志示例与boost日志1.1一起使用。代码如下:
#include <boost/log/core.hpp>
#include <boost/log/trivial.hpp>
#include <boost/log/filters.hpp>
void init()
{
logging::core::get()->set_filter
(
filters::attr< logging::trivial::severity_level >("Severity") >= logging::trivial::info
);
}
int main(int, char*[])
{
BOOST_LOG_TRIVIAL(trace) << "A trace severity message";
}
使用clang编译会导致以下错误消息:
/Users/admin/Documents/cmake tests/boost-log/main.cpp:7:5: error: use of undeclared identifier 'logging'
logging::core::get()->set_filter
^
/Users/admin/Documents/cmake tests/boost-log/main.cpp:9:3: error: use of undeclared identifier 'filters'; did you mean 'boost::log_mt_posix::filters'?
filters::attr< logging::trivial::severity_level >("Severity") >= logging::trivial::info
^~~~~~~
boost::log_mt_posix::filters
/usr/local/include/boost/log/filters/has_attr.hpp:32:11: note: 'boost::log_mt_posix::filters' declared here
namespace filters {
^
/Users/admin/Documents/cmake tests/boost-log/main.cpp:9:18: error: use of undeclared identifier 'logging'
filters::attr< logging::trivial::severity_level >("Severity") >= logging::trivial::info
这个例子看起来是基于一个旧版本的boost日志,有些名称已经更改。这个例子能很容易地修正吗?然而,似乎没有更新的教程。
文档中的示例似乎缺少includes后面的以下行:
namespace logging = boost::log;
namespace filters = boost::log::filters;
相关文章:
- 如何实现具有多个平台__FILE__和__LINE__信息的 C/C++ 可变参数日志记录宏?
- C++ 中混合二进制/文本日志记录的最佳做法
- 轻松日志记录++如何避免多个初始化
- 使用字符串流加速 std::cout 日志记录
- 我的游戏引擎的 spdlog 日志记录出现奇怪的"unresolved external symbol"错误
- 使用 #define 进行跟踪日志记录以避免性能问题
- 如何在代码中启用/禁用 spdlog 日志记录?
- 我正在尝试用 c++ 制作一个日志记录框架,但信息没有传递给记录器的子组件,我做错了什么?
- 使用 Python、ROS 和 C++ 进行日志记录
- C++日志记录类实例标识符
- 如何在C++中重载<<线程安全日志记录的运算符?
- 在 C++17 中将无限参数传递给日志记录函数
- 配置 log4cpp 日志记录级别优先级
- 如何使用 Boost V2 1.70 日志记录库在第一个索引(例如 logtrail01.txt)保留最新的日志文件名?
- 如何将日志记录写入Visual Studio输出窗口?
- 使用现有日志记录库 (C++) 限制日志大小
- "正在初始化":无法从"事件日志记录 *"转换为"事件日志记录 []"
- 提升日志记录text_file_backend没有wchar_t版本?
- 多线程应用程序中的独立日志记录
- C++类似cout的函数,将数据写入文件(日志记录)