11 2022 档案

摘要:(VERBOSE日志宏) 在上一篇我们分析了 检查宏,今天来看看 VERBOSE 日志宏的实现。 CVLOG 宏 宏展开 CVLOG 宏定义如下: #define CVLOG(vlevel, ...) CVERBOSE(el::base::Writer, vlevel, el::base::Disp 阅读全文
posted @ 2022-11-30 12:30 节奏自由 阅读(134) 评论(0) 推荐(0)
摘要:(检查宏) 在上一篇我们介绍完了 easylogging++的 偶尔日志宏,今天我们来看看检查宏的实现. CCHECK 宏 CCHECK 宏定义如下: #define CCHECK(condition, ...) CLOG_IF(!(condition), FATAL, __VA_ARGS__) < 阅读全文
posted @ 2022-11-29 15:27 节奏自由 阅读(402) 评论(0) 推荐(0)
摘要:(条件日志宏) 在上一篇我们介绍完了 easylogging++的 条件日志宏,今天我们来看看偶尔日志宏的实现. CLOG_EVERY_N 宏 宏展开 CLOG_EVERY_N 宏定义如下: #define CLOG_EVERY_N(n, LEVEL, ...)\ C##LEVEL##_EVERY_ 阅读全文
posted @ 2022-11-29 01:41 节奏自由 阅读(139) 评论(0) 推荐(0)
摘要:(条件日志宏) 在上一篇我们介绍完了 easylogging++的 其他基本日志宏,今天我们来看看条件日志宏的实现. CLOG_IF 宏 宏展开 CLOG_IF 宏定义如下: #define CLOG_IF(condition, LEVEL, ...)\ C##LEVEL##_IF(el::base 阅读全文
posted @ 2022-11-28 01:43 节奏自由 阅读(126) 评论(0) 推荐(0)
摘要:(其他基本日志宏) 在上一篇我们介绍了 CLOG宏 的 其他相关类,今天我们来看看其他基本日志宏的实现。 CPLOG 宏 宏展开 CPLOG 宏定义如下: #define CPLOG(LEVEL, ...) \ C##LEVEL(el::base::PErrorWriter, el::base::D 阅读全文
posted @ 2022-11-27 22:03 节奏自由 阅读(141) 评论(0) 推荐(0)
摘要:(CLOG 宏调用相关类) 在上一篇中我们分析了 CLOG 宏 日志信息保存 的流程,今天我们看看前面 CLOG 宏所使用到的一些相关类。 el::base::Writer类 另一个 construct 接口 //声明 Writer &construct(Logger *logger, bool n 阅读全文
posted @ 2022-11-26 21:49 节奏自由 阅读(118) 评论(0) 推荐(0)
摘要:(日志信息保存) 在上一篇中我们分析完了 CLOG 宏 日志输出 的流程,在结尾的时候我们提出了一个问题: CLOG(INFO, "default") << "This is a CLOG!"; CLOG 宏的流式输出是如何实现的?今天我们就来解答这个问题。 writer 类的输出运算符 前面我们经 阅读全文
posted @ 2022-11-26 18:07 节奏自由 阅读(199) 评论(0) 推荐(0)
摘要:(日志输出) 在上一篇我们介绍了 writer 对象的创建以及初始化,今天来看看日志输出的流程。 前面我们提到了 CLOG 宏创建的是 el:: base:: Writer 类的临时对象,秘密就在于这里创建的是临时对象。我们知道, C++对象在离开它的作用域的时候会自动析构,进而调用析构函数 。 而 阅读全文
posted @ 2022-11-26 00:45 节奏自由 阅读(306) 评论(0) 推荐(0)
摘要:(Writer类对象的创建和初始化) 在 easylogging++的那些事(四)源码分析(二)日志记录宏(一)CLOG宏(一)宏展开中我们对CLOG宏展开了,今天来看看日志记录宏中 CLOG 宏的实现。 从上面所有用户日志相关日志级别宏的最终展开结果可以看到: 都是创建了 el:: base:: 阅读全文
posted @ 2022-11-25 21:51 节奏自由 阅读(176) 评论(0) 推荐(0)
摘要:(CLOG 宏展开) 在 上一篇中我们分析了 easylogging++的 主流程,今天来看看日志记录宏中 CLOG 宏的实现。 在 easylogging++的 功能介绍 中我们详细介绍了日志记录宏的一些用法,现在我们来一一剖析这些宏的实现。 先看看 CLOG 宏,CLOG 宏定义如下: #def 阅读全文
posted @ 2022-11-25 21:23 节奏自由 阅读(263) 评论(0) 推荐(0)
摘要:(主流程) 在easylogging++的哪些事(三)总体设计我们介绍了easylogging++的总体设计,从今天开始正式进入源码分析部分,首先我们来看看easylogging++的主流程。 一、easylogging++的初始化 easylogging++的那些事(一):功能介绍快速上手部分提到 阅读全文
posted @ 2022-11-24 18:07 节奏自由 阅读(401) 评论(0) 推荐(0)
摘要:(总体设计) 上一篇文章我们介绍了 easylogging++的 宏,今天我们开始介绍 easylogging++的总体设计。 一、日志框架的需求分析 谈 easylogging++的总体设计之前,我们先假设现在需要开发一个日志框架,按照软件开发的流程,我们首进行需求分析。需求分为功能性需求和非功能 阅读全文
posted @ 2022-11-23 21:34 节奏自由 阅读(405) 评论(0) 推荐(0)
摘要:上一篇文章我们简要介绍了 easylogging++的 主要功能。easylogging++中有很多特性是通过宏来控制的,今天我们就来聊聊这些宏: debug 输出流宏定义 ELPP_INTERNAL_DEBUGGING_OUT_INFO(目前相当于 std:: cout) ELPP_INTERNA 阅读全文
posted @ 2022-11-23 21:22 节奏自由 阅读(378) 评论(0) 推荐(0)
摘要:(功能介绍) 一、概述 1、easylogging++是什么? 引用官方文档的话说,easylogging++是一个面向 C++ 应用程序的单头高效日志库(目前已经拆分为两个文件 easylogging++.h 和 easylogging++.cc)。它是非常强大的,高度可扩展和可配置的用户的要求。 阅读全文
posted @ 2022-11-23 19:36 节奏自由 阅读(1959) 评论(0) 推荐(0)