上一篇文章我们简要介绍了 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_DLLELPP_EXPORT_SYMBOLSwindowsdll导入导出宏
STRTOKSTRERRORSTRCATSTRCPY常见字符串库函数宏
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++的总体框架。