boost.log教程:设计介绍

boost的设计图如下:
在这里插入图片描述
这个图流程比较清晰,但数据细节上不够,我重新画了一个
在这里插入图片描述
Boost.log设计与log4j相似:

  • 用Logger输入数据,输入的数据配合设置的属性即为log record
  • Log record经过过滤和format到达最终的sink,输出到console/文件等位置
  • Logger和sink不绑定,数据输入后完全根据规则经logging core分配到对应的sink

各部分介绍 :
Log record:一组信息(即一组attribute),经流程处理后,会成为一条log信息
Attribute:函数对象,在需要时生成最终数据,如行计数、时间戳等
Attribute value:由Attribute获得的值 ,可以是 “int/string/…” 各种数据类型
(Attribute) value visitation:一个用户定义的访问函数,属性事先知道attribute的类型
(Attribute) value extraction:从log record提取数据,需要事先知道数据的类型
Log sink:log record的最终运算,定义了数据被保存或处理的方式
Log source:用户log的输入点,同时管理一组属性,如severity等
Log filter:判断log record是否被丢弃,log record不被丢弃才会最终成功log信息
Log formatter:将log record的信息合成log信息,包括从attribute获得attribute_value
Logging core:管理logger与sink间的连接,全局对象
i18n:Internationalization的简写,用来处理宽字符
TLS:Thread-local storage,各线程独立的值
RTTI:Run-time type information,c++特性。支持dynamic_casttypeid运算符

boost.log下的命名空间太多,为了方便使用,例子中都使用了如下的简写:

namespace logging = boost::log;
namespace sinks = logging::sinks;
namespace expr = logging::expressions;
namespace attrs = logging::attributes;
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值