上一篇文章我们简要介绍了 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++的总体框架。