Repolode
armink

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. 1

    阅读 docs/zh 下的文档后再移植

  2. 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 数据每日更新。

相关项目