muduo库日志架构

转载请说明出处!!!   作者git地址:https://github.com/GavinPong

一、架构概述:

1、采用基于对象的设计:

2、每条日志都采用申请一个logger临时对象,然后获取logger对象中的logStream类成员对象,调用

logStream的<<运算符将日志缓存到logStream的Buffer类成员对象的FixBuffer成员对象的固定缓

存空间中,临时logger对象释放时,在析构函数中调用输出函数将缓存区中的日志输出;

3、具体的输出由g_output全局函数指针指定的函数将缓存中的日志输出;g_output默认输出到屏幕;

提供设置接口设置用户自己的g_output接口;

 

二、日志的填充原理:

1、Logger-->LogStream-->FixBuffer;

2、生成临时的logger对象,通过Logger对象获取到内部的LogStream对象,调用LogStream的<<

运算符将数据添加到LogStream的FixBuffer中,同一个对象的<<运算符将所有数据缓存到

LogStream的FixBuffer中;

三、日志输出原理:

1、Logger-->LogStream-->FilxBuffer-->outPut

2、当logger帝乡被时,在析构函数,先通过LogStream是对象将FixBuffer对象拿到,然后调用全

局的Output将FixBuffer中的数据输出;

四、类图:

muduo库日志架构_第1张图片

 

 

 

你可能感兴趣的:(muduo库)