首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
SAAS
ToB门户
了解全球最新的ToB事件
论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
微博
Follow
记录
Doing
博客
Blog
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
排行榜
Ranklist
相册
Album
应用中心
qidao123.com ToB IT社区-企服评测·应用市场
»
论坛
›
软件与程序人生
›
后端开发
›
.Net
›
easylogging++的那些事(二)宏定义
返回列表
发新帖
easylogging++的那些事(二)宏定义
[复制链接]
发表于 2022-11-23 21:14:28
|
显示全部楼层
|
阅读模式
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
×
上一篇文章我们简要介绍了 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_PERMS linux 文件权限宏
ELPP_AS_DLL ELPP_EXPORT_SYMBOLS windows 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++的总体框架。
回复
使用道具
举报
返回列表
浏览过的版块
区块链
SAAS
DevOps与敏捷开发
物联网
数据仓库与分析
Java
分布式数据库
人工智能
Oracle
网络安全
罪恶克星
+ 我要发帖
登录后关闭弹窗
登录参与点评抽奖 加入IT实名职场社区
去登录
微信订阅号
微信服务号
微信客服(加群)
H5
小程序
快速回复
返回顶部
返回列表