Python 日志库,用一个 logger 替代标准 logging 的繁琐配置,支持文件轮转、彩色输出和结构化日志。
armink/EasyLogger
一款面向资源受限嵌入式设备的超轻量 C/C++ 日志库,支持过滤、彩色输出和多种输出方式。
- Star
- 4,799
- Fork
- 1,323
- 未关闭 Issue
- 82
- 最近提交
- 前天
这是什么?
EasyLogger 是一款面向资源敏感项目的 C/C++ 日志库,适用于 IoT 产品、可穿戴设备、智能家居等场景。它的 ROM 占用低于 1.6K、RAM 占用低于 0.3K,接口较少,上手快,功能相比 log4c、zlog 等库更为精简。
日志输出目标由用户自行实现,可以是终端、文件、数据库、串口、485 或 Flash 等。每条日志可包含级别、时间戳、线程和进程信息,并支持按标签、级别、关键词进行静态(编译期)与动态(运行期)过滤。各级别日志可显示不同颜色,同时支持 RAW 与 hexdump 格式。库可运行于 RT-Thread、UCOS、Linux、Windows、NuttX 及裸机平台,并提供线程安全、异步和缓冲输出模式。
日志保存到 Flash(基于 EasyFlash)以及文件循环转档等功能以插件形式提供。
核心功能
- 01ROM 占用低于 1.6K,RAM 占用低于 0.3K。
- 02输出目标可自定义,如终端、文件、Flash、串口或数据库。
- 03支持按标签、级别、关键词进行编译期与运行期过滤。
- 04提供线程安全、异步和缓冲输出模式。
- 05各级别日志可使用不同颜色,并支持 RAW 与 hexdump 格式。
- 06通过插件实现 Flash 日志存储和文件转档。
适用场景
- 为资源受限的 IoT 或可穿戴设备固件添加日志。
- 在 RT-Thread 或裸机平台上调试嵌入式设备。
- 在没有文件系统的系统中将设备日志保存到 Flash。
- 为较大的 C 项目添加按标签过滤的日志功能。
快速上手
- 1
阅读 docs/zh 下的文档后再移植
- 2
按照 docs/zh/port/kernel.md 将库移植到你的项目中
使用前须知
- 没有包管理器安装方式,需要把源码移植到你的项目中。
- 参数配置是全局单例,不支持较复杂的按输出分别配置。
- 主要文档和说明以中文为主。
收录于专题
标签
常见问题
- EasyLogger 是什么?
- 一款面向资源受限嵌入式设备的超轻量 C/C++ 日志库,支持过滤、彩色输出和多种输出方式。 EasyLogger 是一款面向资源敏感项目的 C/C++ 日志库,适用于 IoT 产品、可穿戴设备、智能家居等场景。它的 ROM 占用低于 1.6K、RAM 占用低于 0.3K,接口较少,上手快,功能相比 log4c、zlog 等库更为精简。
- EasyLogger 可以免费使用吗?用的什么许可证?
- EasyLogger 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
- EasyLogger 还在维护吗?
- 活跃维护中。EasyLogger 最近一次提交是在 2026年11月5日。
- EasyLogger 适合用来做什么?
- 为资源受限的 IoT 或可穿戴设备固件添加日志。 在 RT-Thread 或裸机平台上调试嵌入式设备。 在没有文件系统的系统中将设备日志保存到 Flash。 为较大的 C 项目添加按标签过滤的日志功能。
- EasyLogger 怎么安装和运行?
- 阅读 docs/zh 下的文档后再移植 按照 docs/zh/port/kernel.md 将库移植到你的项目中
- 在哪里获取 EasyLogger?
- 源代码和安装说明在 GitHub 上:https://github.com/armink/EasyLogger
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
面向资源受限设备与物联网场景的可扩展实时操作系统(RTOS),支持多种硬件架构。
跨平台的嵌入式开发命令行工具与构建系统,涵盖库管理、多种开发板与框架、调试和单元测试。
面向 TypeScript 与 JavaScript 的通用日志库,支持美化终端输出、结构化 JSON、敏感信息脱敏,且无运行时依赖。
面向嵌入式系统的开源跨平台 USB 主机与设备协议栈,支持 50 多种 MCU 系列。
面向 JavaScript 与 TypeScript 的零依赖日志库,支持 Deno、Node.js、Bun、浏览器和边缘函数。