首页IT科技宏定义实现swap(easylogging++的那些事(二)宏定义)

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

时间2025-06-20 12:20:50分类IT科技浏览4495
导读:上一篇文章我们简要介绍了 easylogging++的 主要功能。easylogging++中有很多特性是通过宏来控制的,今天我们就来聊聊这些宏:...

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

debug 输出流宏定义

ELPP_INTERNAL_DEBUGGING_OUT_INFO(目前相当于 std:: cout)

ELPP_INTERNAL_DEBUGGING_OUT_ERROR(目前相当于 std:: cerr)

ELPP_INTERNAL_DEBUGGING_ENDL(目前相当于 std:: endl)

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

断言宏

ELPP_DISABLE_ASSERT(禁用断言)

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

errno 错误输出宏 ELPP_INTERNAL_DEBUGGING_WRITE_PERROR

详细错误信息调试宏(会输出自定义错误信息加上 errno 错误信息 ELPP_INTERNAL_DEBUGGING_WRITE_PERROR)

ELPP_DEBUG_ERRORS 启用宏

ELPP_INTERNAL_ERROR 调试详细错误信息输出宏

INFO 调试日志宏 调试源码时输出内部的 INFO 日志信息

ELPP_DEBUG_INFO

ELPP_INTERNAL_INFO_LEVEL(默认最大 info 级别设为 9)

CRASH 堆栈日志宏( 仅仅支持 GCC )

开启宏: ELPP_FEATURE_ALL 或者 ELPP_FEATURE_CRASH_LOG

STACKTRACE 宏: ELPP_STACKTRACE

杂项宏

ELPP_UNUSED 指示未使用的变量或者参数

ELPP_LOG_PERMSlinux 文件权限宏

ELPP_AS_DLL ELPP_EXPORT_SYMBOLSwindows dll 导入导出宏

STRTOK STRERROR STRCAT STRCPY常见字符串库函数宏

ELPP_NO_SLEEP_FOR 当前平台是否支持 sleep 库函数

ELPP_UTC_DATETIME当前时间函数宏(默认使用本地时间相关函数      ,定义后            ,使用 UTC 时间相关函数)

启用标准线程库宏

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

异步日志宏 ELPP_EXPERIMENTAL_ASYNC

线程安全宏 ELPP_THREAD_SAFE 或 ELPP_EXPERIMENTAL_ASYNC

函数签名宏 ELPP_FUNC

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

日志启用相关宏

禁用全部日志 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

STL 相关容器日志直接输出支持相关宏

所有 STL 容器都需要: ELPP_STL_LOGGING

array 需要:ELPP_LOG_STD_ARRAY

unordered_set 需要:ELPP_LOG_UNORDERED_SET

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

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

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

unicode 支持宏 ELPP_UNICODE

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

性能跟踪宏:ELPP_FEATURE_PERFORMANCE_TRACKING

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

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

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

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

性能跟踪宏

TIMED_SCOPE_IF

TIMED_SCOPE

TIMED_BLOCK

TIMED_FUNC_IF

TIMED_FUNC

PERFORMANCE_CHECKPOINT

PERFORMANCE_CHECKPOINT_WITH_ID

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

ELPP_COUNTER

ELPP_COUNTER_POS

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

宏技巧:

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

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

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
SEO网站优化——让你的网站更受欢迎(掌握SEO优化技巧,提升网站排名,引领流量风潮)