轻量级日志库 EasyLogger:为嵌入式开发量身打造的日志神器!
引言
在嵌入式开发中,日志记录是调试和问题排查的重要工具。然而,传统的日志库往往过于臃肿,难以在资源受限的设备上运行。今天,我要向大家推荐一款超轻量级、高性能的 C/C++ 日志库——EasyLogger。它不仅占用极少的资源(ROM<1.6K, RAM<0.3K),还提供了丰富的功能,非常适合 IoT 产品、可穿戴设备、智能家居等资源敏感的项目。
本文引用地址:https://www.eepw.com.cn/article/202503/467828.htm1. EasyLogger 的核心优势
1.1 超轻量级设计
EasyLogger 的设计理念是“小而美”,ROM 占用不到 1.6K,RAM 占用不到 0.3K,非常适合资源有限的嵌入式设备。相比 log4c、zlog 等知名日志库,EasyLogger 更加轻量,接口更简洁,上手更快。
1.2 强大的扩展性
虽然 EasyLogger 的核心功能简单,但它支持通过插件形式进行功能扩展。目前已经支持 Flash 日志存储、文件日志转存等功能,未来还会推出更多实用插件。
1.3 多平台支持
EasyLogger 不仅支持常见的操作系统(如 RT-Thread、UCOS、Linux、Windows、Nuttx),还支持裸机平台,几乎可以运行在任何嵌入式设备上。
2. 主要特性一览
2.1 自定义输出方式
EasyLogger 允许用户自定义日志的输出方式,无论是终端、文件、数据库、串口,还是 Flash,都可以轻松实现。
2.2 丰富的日志内容
日志内容可以包含级别、时间戳、线程信息、进程信息等,帮助开发者快速定位问题。
2.3 线程安全与异步输出
EasyLogger 的日志输出设计为线程安全,并支持异步输出和缓冲输出模式,确保在高并发环境下也能稳定运行。
2.4 多彩日志显示
各级别日志支持不同颜色显示,调试信息一目了然。用户还可以根据自己的喜好,自定义日志的颜色和字体风格。
2.5 动态过滤功能
支持按标签、级别、关键词进行动态过滤,帮助开发者快速定位关键日志,提升调试效率。
3. 插件系统:让 EasyLogger 更强大
3.1 Flash 插件
通过 EasyFlash 库,EasyLogger 可以直接将日志存储在 Flash 中,无需文件系统支持,非常适合无文件系统的小型嵌入式设备。
3.2 File 插件
支持文件转档、文件循环保存等功能,适合需要长期存储日志的场景。
3.3 更多插件敬请期待
EasyLogger 的插件系统非常灵活,未来还会推出更多实用插件,满足不同场景的需求。
4. 如何使用 EasyLogger?
4.1 参数配置
EasyLogger 支持按标签、级别、关键词进行过滤,并可以动态开启/关闭日志输出。用户还可以设置静态和动态的输出级别,灵活控制日志的详细程度。
4.2 输出级别
EasyLogger 参考了 Android Logcat 的日志级别,从高到低分别为:
0.[A]:断言(Assert)
1.[E]:错误(Error)
2.[W]:警告(Warn)
3.[I]:信息(Info)
4.[D]:调试(Debug)
5.[V]:详细(Verbose)
4.3 输出格式
EasyLogger 支持多种输出格式,包括级别、时间、标签、进程信息、线程信息、文件路径、行号、方法名等,每种优先级可以独立设置输出格式。
5. 实际应用场景
5.1 终端输出
适合动态查看日志,方便调试,但不具备存储功能。
5.2 文件与 Flash 存储
文件方式适合需要长期存储日志的场景,而 Flash 方式则更适合无文件系统的小型嵌入式设备。
5.3 Demo 演示
EasyLogger 提供了丰富的 Demo,展示了如何在 RT-Thread、STM32 等平台上使用 EasyLogger。通过这些 Demo,开发者可以快速上手并应用到自己的项目中。
6. 开源与社区支持
EasyLogger 是一个开源项目,代码托管在 GitHub、OSChina 和 Coding 上。如果你觉得这个项目很棒,不妨点击右上角的 Star,支持一下开发者!同时,也欢迎大家贡献代码,设计更多实用插件,一起完善 EasyLogger。
https://gitee.com/Armink/EasyLogger
评论