文章目录
- 一、日志库模型
- 1.前端
- 参考
一、日志库模型
组成部分
- muduo日志库由前端和后端组成。
muduo日志库是异步高性能日志库,其性能开销大约是前端每写一条日志消息耗时1.0us~1.6us。
采用双缓冲区(double buffering)交互技术。基本思想是准备2部分buffer:A和B,前端(front end)线程往buffer A填入数据(日志消息),后端(back end)线程负责将buffer B写入日志文件。当A写满时,交换A和B。如此往复。
实现时,在后端设置一个已满缓冲队列(Buffer1~n,2<=n<=16),用于缓存一个周期内临时要写的日志消息。
这样做到好处在于:
- 1)线程安全;
- 2)非阻塞。
这样,2个buffer在前端写日志时,不必等待磁盘文件操作,也避免每写一条日志消息都触发后端线程。
异常处理:
- 当一个周期内,产生过多Buffer入队列,当超过队列元素上限数量值25时,直接丢弃多余部分,并记录。
1.前端
前端主要包括:Logger, LogStream,FixedBuffer,SourceFile。
参考
- muduo笔记 日志库(一)
- muduo笔记 日志库(二)