• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

碧海无波,细水长流

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

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输出。虽然简单,非常实用。

posted on 2025-12-30 14:01  碧海无波,细水长流  阅读(0)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3