![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
开源第三方库
文章平均质量分 94
主要介绍一些平时使用过的好用的库
流星雨爱编程
记录工作的日常,心得体会
展开
-
spdlog一个非常好用的C++日志库(八): 自定义格式化符号
在spdlog中,扩展自定义标志允许您根据自己的需求定义新的日志格式标志。这通过继承custom_flag_formatter类并实现其clone()和format(...)抽象方法来完成。以下是如何在spdlog中扩展自定义标志的详细步骤:步骤 1: 继承 custom_flag_formatter 类首先,您需要创建一个继承自spdlog::custom_flag_formatter的类。在这个类中,您将定义您的新标志的逻辑。步骤 2: 实现 clone() 方法。原创 2024-07-10 22:40:08 · 1448 阅读 · 11 评论 -
spdlog一个非常好用的C++日志库(七): 源码分析之异常类spdlog_ex
标准库异常类(std::exception)系列,能满足大多数使用异常的场景,但对系统调用异常及错误信息缺乏支持。spdlog通过继承std::exception,扩展对系统调用的支持,实现自定义异常类spdlog_ex。spdlog_ex类声明很简单,在std::exception基础上添加了string类型的msg_成员,提供支持errno的构造函数。原创 2024-07-07 11:39:49 · 355 阅读 · 10 评论 -
spdlog一个非常好用的C++日志库(六): 源码分析之registry类
已经有了用于接收前端用户log消息的类logger,代表log消息的类是log_msg,后端写log消息到目标文件的类sink,格式化log消息为最终字符串的类formatter,解析pattern flag的类pattern_formatter等等。但似乎还存在一个问题:库的使用者,如何使用它们?每次使用时,可能需要先创建logger对象,然后通过logger对象来接收用户log消息。然而,当用户希望创建多个logger对象时,谁来组织logger对象?原创 2024-07-06 16:41:23 · 1177 阅读 · 4 评论 -
spdlog一个非常好用的C++日志库(五): 源码分析之线程池thread_pool
spdlog通过类模板thread_pool来表示线程池,用于异步logger:从前端用户线程接收log消息,存放到thread_pool的mpmc_blocking_queue缓存(多生产者-多消费者阻塞队列)中,然后用子线程组作为后端线程,取出log消息并调用注册的任务处理。实际上调用async_logger::backend_sink_it_将log消息写到sink目标。原创 2024-07-05 22:54:48 · 655 阅读 · 5 评论 -
spdlog一个非常好用的C++日志库(四): 源码分析之logger类
一个logger类对象代表一个日志记录器,为用户提供日志记录接口。包括哪些功能?基本功能:logger名称,用于唯一标识该logger日志等级接收用户日志消息的接口提供一个sink(目标文件)指针数组和formatter(格式化),用于转换格式串并写到目标文件线程安全错误处理高级功能:环形队列缓存最近消息,便于回溯自定义错误处理原创 2024-07-04 23:00:52 · 1097 阅读 · 5 评论 -
spdlog一个非常好用的C++日志库(三): 源码分析之formatter类
spdlog并未说明何为scope(范围),何为pad(垫片)。在这里,我把要显示的一个固定宽度的pattern flag(形如"%8X" "%-8X" "%=8!X")称为scope,没有指定宽度的称为null-scope,进行填充动作的类称为padder(垫片器,填充器),包含填充信息的类为padding_info。一个pattern flag是一个模式标记,对应一个要显示的字段,当该字段的宽度固定时,如果固定宽度 > 实际显示宽度,就需要填充;转载 2024-07-03 22:06:21 · 151 阅读 · 5 评论 -
spdlog一个非常好用的C++日志库(二): 源码分析之sinks系列类
sinks并不是一个类,而是一系列类,以基类-派生类形式组织,一个sink派生类代表了一种输出log消息方式,输出目标可以是普通文件stdout、stderr,或者syslog等等。sink系列类主要负责从logger接收用户log消息,按指定模式(pattern)进行格式化(format),得到一条完整的、格式化后的log消息,然后将其写到目标文件。sink系列类的实现,全部位于include/spdlog/sinks目录。转载 2024-06-27 22:59:23 · 221 阅读 · 11 评论 -
spdlog一个非常好用的C++日志库(一): 简介与使用
spdlog是一个开源的C++日志库,它提供了高性能和易用性的日志记录功能。它是为了满足现代C++应用程序的需要而创建的,可以在不同的平台上运行。spdlog 是一个快速、异步的、header-only 的 C++ 日志库。它提供了简单易用的 API 并具有高性能和可扩展性。spdlog因其高性能、易用性和丰富的功能,在C++开发中常被用作日志记录工具,帮助开发人员更好地追踪代码执行、排查问题、分析性能等。原创 2024-06-20 23:30:39 · 2672 阅读 · 8 评论 -
Folly,一个强大的C++库
Folly库是一个强大而且广泛应用于Facebook的C++库,通过提供高效、可扩展和易用的工具和组件,帮助开发者构建高性能的C++应用程序。本文对Folly库的主要特点进行了详细介绍,并通过示例代码展示了其在实际项目中的应用。希望读者能够通过本文对Folly库有更深入的了解,并在自己的项目中充分发挥其优势,提升代码效率和可扩展性。原创 2024-06-18 08:29:45 · 1186 阅读 · 11 评论 -
免费开源图片转文字识别软件:Umi-OCR
Umi-OCR:免费,开源,可批量的离线OCR软件,目前适用于 Windows7 x64 及以上。这个项目基于基于 PaddleOCR,支持截图识别、批量导入识别、个性化识别等功能。整个项目由 python 语言编写,win7系统的小伙伴大概率是用不了的。推荐 Win10 x64 及以上版本。原创 2024-06-05 21:59:41 · 1446 阅读 · 2 评论