以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添加到队列中
图四