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中的數據輸出;

四、類圖:

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章