杂谈:先做个垃圾出来
写个日志库
两个星期前,我想写一个纯 C++ 的日志库练练手,于是找了几个主流库来学习,也借助 AI 反复探讨了项目框架…试着学习他们的优秀之处。
- spdlog
- plog
- log4Qt
学习优秀的日志库
plog
- Header-only,直接
#include就能用,不需要编译链接。 - 核心代码仅千行左右,麻雀虽小五脏俱全。非常适合拿来读源码学习。
- 支持自定义 Formatter 和 Appender(输出目标),扩展方便。
- 跨平台支持丰富:Windows Linux MacOS FreeRTOS Android Arduino。
- 支持多实例,可以为不同模块配置独立的日志通道。
适合场景:小型项目、嵌入式设备,或者像我一样的日志库学习者。
spdlog
- 性能极高,号称是目前最快的 C++ 日志库之一,异步模式基于一个后台线程池 + 阻塞队列。
- 同时提供 Header-only 和编译版两种使用方式。
- 内置格式化基于 fmt 库(C++20
std::format即源于此),语法简洁。 - Sink(输出目标)体系完善:控制台、文件、按大小/按天滚动、syslog、Windows Event Log 等应有尽有。
适合场景:追求性能的生产环境,或者对日志功能要求比较全面的项目。
log4Qt
- 移植自 Java 的 log4j,API 风格和配置理念一脉相承。
- 深度集成 Qt,天然支持
QString、信号槽、qDebug()转发。 - 支持通过
.properties配置文件初始化,不改代码就能调整日志级别、输出目标、格式。 - 支持 Logger 层级继承,父子 Logger 之间的配置可以复用。
适合场景:基于 Qt 的项目,或者需要”运维改配置而不改代码”来调整日志行为的场景。
三个库各有各的好,我对着源码和文档反复查看。
可回过头一想,研究了这么多,我到底学到了多少,项目进度又推进了多少呢?
我突然意识到这样的投入产出比很低。越是准备,越是有更多要准备的东西,最后心气都磨没了!
先做个垃圾出来
今天偶然刷到一个视频 比别人更快学会任何东西的顶级思维:先做个垃圾出来
她分享的观点是:
学东西慢是因为我们一开始就想做到完美,害怕做出来的东西丢脸,害怕准备不足,害怕不够完善。我们被完美主义困住了。
而实际上,我们需要的只是先做,先做出来。哪怕它很垃圾。
flowchart TD A[行动(哪怕很垃圾)] --> B[发现问题] B --> C[解决问题] C --下一个循环--> A
避开大而全的学习,先做出来可以让我们尽快进入反馈循环中。
掌握最基础的内容就行动,遇到问题就带着问题去找解决方法。
这个循环转得越快,我们才学得越快。与君共勉! :)
- 标题: 杂谈:先做个垃圾出来
- 作者: PointY
- 创建于 : 2026-07-12 17:39:52
- 更新于 : 2026-07-14 14:52:14
- 链接: https://siyuhong.github.io/2026/07/12/chat-make_a_garbage_first/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论