开封市网站建设_网站建设公司_漏洞修复_seo优化
2025/12/30 14:02:54 网站建设 项目流程

View Post

关于apollo中日志的宏定义写法

Hello,各位看官好,今天我们简单介绍一下apollo中关于宏定义的各种参考方法,这个宏的定义方法很简单,但是我觉得用起来非常的广泛,后续写代码可以直接套用

一、目标

  我们要实现的目标是能够打印出这句话是什么日志等级,在哪个模块中,举个例子:我们输入AINFO << "this is the test";我们希望最终输出的结果是

  google::logMessage[模块名称] << "this is the test";那么我们来看整个过程是如何写的

二、宏的推导过程

  1、首先我们展开AINFO这个宏

    #define AINFO  ALOG_MODULE(MODULE_NAME, INFO)  // module_name我们可以通道接口获取,INFO的话是log等级

  2、#define  ALOG_MODULE(module, log_serverity)   ALOG_MODULE_STREAM(log_serverity)(module)  // 主要目标是将中间逗号去掉

  3、#define  ALOG_MODULE_STREAM(log_serverity)   ALOG_MODULE_STREAM##log_serverity  //将前两个合并在一起

  4、#define ALOG_MODULE_STREAM_INFO(module)  \

    google::LogMessage(_FILE_, _LINE_, google::INFO).stream() \

    << "[" << MODULE << "]"

 

通过这种方式,我们就可以把一个AINFO转换成一个完整的glog输出。虽然简单,非常实用。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询