在 Boost.Log(V2) 中筛选属性值
filter for attribute values in Boost.Log(V2)
我正在尝试创建一个类似于log4c的Boost记录器。用"文件"、"功能"、"行"等内容装饰了我的日志记录。还创建了一个自定义过滤器,该过滤器通过以下方式获取所有属性集
bool Filter(const boost::log::attribute_value_set& set)
{
for (boost::log::attribute_value_set::const_iterator it=set.begin(); it != set.end(); ++it)
{
std::cout << "Name " << it->first << std::endl;
}
[...]
}
日志的基础是严重性过滤器是通过
BOOST_LOG_GLOBAL_LOGGER_INIT( my_logger,boost::log::sources::severity_logger_mt < SeverityLevel > )
其中严重性级别是客户枚举。
我正在创建日志记录,例如:
BOOST_LOG_SEV(my_logger::get(),level) << boost::log::add_value("Mask", mask) << boost::log::add_value("Line", line) << boost::log::add_value("File", File) << boost::log::add_value("Function", Function) << l_line;
其中"line","File","Function"是LINE,FILE和FUNCTION宏中的"明显"值(meh我不知道如何转义双下划线,抱歉(。
令我惊讶的是,日志记录仅包含"全局"记录成员,如"严重性","LineID","时间戳"等,但不包含我的自定义属性在日志时创建(例如行、文件、函数等(。显然,它们是使用我的自定义格式化程序写入日志目标的,没有任何问题。
我显然错过了一些非常简单的东西,请注意我是谷歌搜索了半天没有任何运气。
有人可以指导我到底错过了什么吗?谢谢
好的。因此,在执行过滤器后附加常规属性(我觉得这很奇怪,但情况就是这样(。所以我需要使用作用域属性
相关文章:
- 如何导出包含具有"std::unique_ptr"值的"std::map"属性的
- C++概念:如何使用'concept'检查模板化结构的属性?
- 子目录是否继承属性,例如add_definitions,include_directories和父Cmakelist.t
- 通过指向指针数组的指针访问子类的属性
- MSVC是否支持C++11样式的属性而不是__declspec
- QML:修改在不同QML文件(而非main.QML)中定义的子对象的属性
- 类的C++属性似乎已重新初始化
- Qt Quick-如何仅从c++代码与qml属性交互
- 用概念检查属性的类型
- C++如何将同一类的实例作为属性
- 按多个属性排序
- 主函数参数的属性
- "perf_event_attr"结构的"read_format"属性的选项到底是什么?
- C++删除未使用的类属性会导致 std::logic_error
- 无法使用 SWIG 在 Python 中实例化C++类(获取属性错误)
- 使用内存地址访问结构的属性值
- C++调用具有 *this 属性的单个帮助程序函数
- 直接显示筛选器属性窗口
- 在 Boost.Log(V2) 中筛选属性值
- 将消息从DirectShow筛选器发送到属性页