首页 > 其他分享 >easylogging++的那些事(二)宏定义

easylogging++的那些事(二)宏定义

时间:2022-11-23 21:37:38浏览次数:62  
标签:INFO 定义 LOGS ++ INTERNAL easylogging DISABLE 日志 ELPP

上一篇文章我们简要介绍了 easylogging++的 主要功能。easylogging++中有很多特性是通过宏来控制的,今天我们就来聊聊这些宏:

  1. debug 输出流宏定义
    ELPP_INTERNAL_DEBUGGING_OUT_INFO(目前相当于 std:: cout)
    ELPP_INTERNAL_DEBUGGING_OUT_ERROR(目前相当于 std:: cerr)
    ELPP_INTERNAL_DEBUGGING_ENDL(目前相当于 std:: endl)

  2. 字符串包装宏 ELPP_INTERNAL_DEBUGGING_MSG(目前就是字符串本身)

  3. 断言宏
    ELPP_DISABLE_ASSERT(禁用断言)
    ELPP_DEBUG_ASSERT_FAILURE(断言条件失败时,程序停止在断言处不继续往下执行)

  4. errno 错误输出宏 ELPP_INTERNAL_DEBUGGING_WRITE_PERROR

  5. 详细错误信息调试宏(会输出自定义错误信息加上 errno 错误信息 ELPP_INTERNAL_DEBUGGING_WRITE_PERROR
    ELPP_DEBUG_ERRORS 启用宏
    ELPP_INTERNAL_ERROR 调试详细错误信息输出宏

  6. INFO 调试日志宏 调试源码时输出内部的 INFO 日志信息
    ELPP_DEBUG_INFO
    ELPP_INTERNAL_INFO_LEVEL(默认最大 info 级别设为 9)

  7. CRASH 堆栈日志宏( 仅仅支持 GCC )
    开启宏: ELPP_FEATURE_ALL 或者 ELPP_FEATURE_CRASH_LOG
    STACKTRACE 宏: ELPP_STACKTRACE

  8. 杂项宏
    ELPP_UNUSED 指示未使用的变量或者参数
    ELPP_LOG_PERMS linux 文件权限宏
    ELPP_AS_DLL ELPP_EXPORT_SYMBOLS windows dll 导入导出宏
    STRTOK STRERROR STRCAT STRCPY 常见字符串库函数宏
    ELPP_NO_SLEEP_FOR 当前平台是否支持 sleep 库函数
    ELPP_UTC_DATETIME 当前时间函数宏(默认使用本地时间相关函数,定义后,使用 UTC 时间相关函数)

  9. 启用标准线程库宏
    ELPP_FORCE_USE_STD_THREAD 强制使用标准库的线程接口(内部会测试系统信息是否支持)

  10. 异步日志宏 ELPP_EXPERIMENTAL_ASYNC

  11. 线程安全宏 ELPP_THREAD_SAFEELPP_EXPERIMENTAL_ASYNC

  12. 函数签名宏 ELPP_FUNC

  13. 可变参模板支持条件测试宏 ELPP_VARIADIC_TEMPLATES_SUPPORTED

  14. 日志启用相关宏
    禁用全部日志 ELPP_DISABLE_LOGS( 日志输出的前提 )
    单独禁用 DEBUG 日志 ELPP_DISABLE_DEBUG_LOGS
    单独禁用 INFO 日志 ELPP_DISABLE_INFO_LOGS
    单独禁用 WARNING 日志 ELPP_DISABLE_WARNING_LOGS
    单独禁用 ERROR 日志 ELPP_DISABLE_ERROR_LOGS
    单独禁用 FATAL 日志 ELPP_DISABLE_FATAL_LOGS
    单独禁用 TRACE 日志 ELPP_DISABLE_TRACE_LOGS
    单独禁用 VERBOSE 日志 ELPP_DISABLE_VERBOSE_LOGS

  15. STL 相关容器日志直接输出支持相关宏
    所有 STL 容器都需要: ELPP_STL_LOGGING
    array 需要:ELPP_LOG_STD_ARRAY
    unordered_set 需要:ELPP_LOG_UNORDERED_SET

  16. QT 相关容器日志直接输出支持相关宏 ELPP_QT_LOGGING

  17. BOOST 相关容器日志直接输出支持相关宏 ELPP_BOOST_LOGGING

  18. WXWIDGETS 相关类日志直接输出支持相关宏 ELPP_WXWIDGETS_LOGGING

  19. unicode 支持宏 ELPP_UNICODE

  20. 默认日志记录器 id 宏(不指定时为 default) ELPP_DEFAULT_LOGGER

  21. 性能跟踪宏:ELPP_FEATURE_PERFORMANCE_TRACKING

  22. 默认性能跟踪日志记录器 id 宏(不指定时为 performance) ELPP_DEFAULT_PERFORMANCE_LOGGER

  23. 全部特性开启宏(主要用于性能跟踪和 crash 堆栈记录) ELPP_FEATURE_ALL

  24. syslog 日志开启宏(需要系统支持 syslog 日志, 默认 syslog 的日志记录器 idsyslog) ELPP_SYSLOG

  25. MAKE_LOGGABLE 用于兼容无法修改源码的第三方类型也能直接进行日志输出

  26. 性能跟踪宏
    TIMED_SCOPE_IF
    TIMED_SCOPE
    TIMED_BLOCK
    TIMED_FUNC_IF
    TIMED_FUNC
    PERFORMANCE_CHECKPOINT
    PERFORMANCE_CHECKPOINT_WITH_ID

  27. 指定文件指定行计数器(用于条件记录日志)
    ELPP_COUNTER
    ELPP_COUNTER_POS

  28. 写日志相关宏(easylogging++的哪些事(一): 功能介绍 中仔细介绍过)

  29. 宏技巧:
    获取可变参的数量: el_resolveVALength( 目前源码当中最多只能获取的可变参数量限制在 10 个 )

easylogging++当中的宏就介绍到这里,下一篇文章将开始介绍 easylogging++的总体框架。

标签:INFO,定义,LOGS,++,INTERNAL,easylogging,DISABLE,日志,ELPP
From: https://www.cnblogs.com/DesignLife/p/16920154.html

相关文章

  • C++全栈开发学习路线图
    C语言基础与提高 C语言基础 指针、内存管理 变量、条件、字符串、数组、函数、结构体 C语言提高 多级指针的使用 接口的封......
  • 自定义View
    View类是Android中各种组件的基类,如View是ViewGroup基类,表现为显示在屏幕上的各种视图。Android中的UI组件都是由View和ViewGroup组成。 ttributeSet与自定义属性:系统自......
  • 数据结构(二):括号匹配(C++,栈)
    好家伙,写题,题目代码在最后 来吧,  1.栈 栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一......
  • 自定义的Qt搜索框控件
    该控件模仿的是比较常见的应用程序中的搜索框。实现了输入文本后按回车搜索(也可以点击搜索按钮开始搜索),和记住最近的几个搜索记录的功能。使用者通过响应inputCompleted信......
  • Vue笔记 - 自定义事件与事件总线
    自定义事件与事件总线目录自定义事件与事件总线1.事件1.1基本使用1.2事件修饰符1.3键盘事件2.自定义事件3.全局事件总线1.事件1.1基本使用使用v-on:xxx或......
  • C++ 嵌入式实时操作系统调试心得
    1、如果设置了全局vector变量,然后在程序中一直pushback,如果是系统内存较小,运行一段时间后可能会崩溃;2、如果使用C语言编程采用动态内存,一定要在变量生存周期结束时对内存......
  • 手动创建线程池+自定义拒绝策略
    try{ThreadFactorytycThreadFactory=newThreadFactoryBuilder().setNamePrefix("tyc-call-inf").build();//拒绝策略,超过线程数+......
  • 自定义异常类以及使用方式
    publicclassAmountOfMoneyMissMatchExceptionextendsRuntimeException{publicAmountOfMoneyMissMatchException(){super();}publicAmoun......
  • Filebeat 定义kibana 索引模式
    filebeat.inputs:-type:logenabled:truepaths:-/data/logs/pb-dubbo-user/err_*.logfields:source:dubbo-usermultiline.pattern:'^[0-9]{4}-[0-9]{......
  • C++ --- 标准库std::max/std::min和window头文件中宏max/min冲突
    转载:https://blog.twofei.com/668/在包含了Windows.h的C++源代码中使用std::min/std::max会出现错误。intmain(){intx=std::max(0,1);inty=std......