c++ programmer
分类: C/C++
2016-12-24 16:01:56
基础日志。
使用需要包含头文件:#include
所在命名空间 namespace boost::log::sources。
包含两个日志类:logger和logger_mt,后者为线程安全版本。
日志输入宏:BOOST_LOG。
例如:
点击(此处)折叠或打开
支持严重等级的日志。自动注册了一个名为“Severity”的属性。
使用须包含头文件: #include 和
#include 。
所在命名空间: namespace boost::log::sources。
包含两个日志类模板:severity_logger和severity_logger_mt,后者为线程安全版本, 实例化类模板时需要一个 int类型的模板参数,通常定义为枚举类型,该枚举类 型定义了日志严重等级。boost.log定义了一个严重等级枚举类型 severity_level,所在命名空间为 boost::trivial。
日志输入宏:BOOST_LOG_SEV。
例如:
点击(此处)折叠或打开
关联通道的日志。自动注册了一个名为“Channel”的属性。
使用须包含头文件: #include 和
#include 。
所在命名空间 namespace boost::log::sources。
包含两个日志类模板:channel_logger和channel_logger_mt,后者为线程安全版本。
日志输入宏:BOOST_LOG_CHANNEL
④ Logger with exception handling support支持异常处理的日志。
使用须包含头文件: #include 。
所在命名空间: namespace boost::log::sources。
⑤ Logger with mixed features混合特征的日志。同时支持严重等级和通道的日志。
使用须包含头文件: #include 。
所在命名空间: namespace boost::log::sources。
包含两个日志类模板:severity_channel_logger和severity_channel_logger_mt,后者 为线程安全版本。
日志输入宏:BOOST_LOG_SEV。
⑥ Global storage for loggers
日志记录对象,
boost.log 中心模块,广泛应用单例,获取实例方法:boost::log::core::get()。
包含头文件:#include 。
命名空间:namespace boost::log::core。
值得说明的是:boost::log::core的所有方法都是线程安全的。
core 提供如下工具:
① 全局和指定线程的属性集
② 全局日志过滤
③ 使用sink过滤器传递日志到sink
④ 异常处理全局钩子
⑤ logger日志输入进入点
⑥ flush同步写入日志
1. Attribute sets
① add_global_attribute(): 添加全局属性。
② remove_global_attribute(): 删除全局属性。
③ add_thread_attribute(): 添加线程属性。
④ remove_thread_attribute(): 删除线程属性
2. Global filtering
① set_filter(): 设置过滤器。
3. Sink Management
① add_sink(): 添加sink。
② remove_sink(): 删除sink。
4. Exception handling
① set_exception_handler(): 设置异常处理句柄。
5. Feeding log records
① open_record(): 获取一条日志。
② push_record(): 提交一条由open_record返回获得的日志。
同步sink frontend。继承自synchronous_sink,提供线程同步。实例化类模板的sink backend必须提供线程同步服务。
包含头文件: #include 。
所在命名空间:namespace boost::log::sinks。
3. Asynchronous sink frontend
异步sink_frontend。继承自asynchronous_sink。
② backend
1. Text stream backend
2. Text file backend
3. Text multi-file backend
4. Syslog backend
5. Windows debugger output backend
6. Windows event log backend