1. 程式人生 > >Ceph Log日誌相關程式碼走讀

Ceph Log日誌相關程式碼走讀

以ceph-10.2.9版本,ceph-mds程序為例

建立CephContext類物件

如圖一所示,ceph_mds.cc中main函式,首先呼叫了函式global_init, 在global_init中,建立了一個CephContext類物件cct,並將cct賦給全域性變數g_ceph_context。

圖一

CephContext類解析

如圖二所示,呼叫CephContext建構函式,CephContext建構函式會建立md_config_t類物件(解析日誌,包括name,log_level,gather_level)。根據md_config_t類物件解析出來的結果,作為引數,建立Log類物件,並啟動Log日誌

圖二

啟動Log日誌, 並輸出log

如圖三所示,建立了Log日誌執行緒,用於輸出log日誌

圖三

新增log佇列

如圖四所示,將輸出加入到Entry,再將Entry新增到佇列中

圖四