EasyLogger is a lightweight C/C++ logging library designed for resource-constrained embedded systems.
The tool addresses the need for logging in environments where memory and storage are severely limited, such as IoT devices, wearables, and smart home products. It achieves this through an ultra-compact footprint while maintaining high performance. Rather than implementing a monolithic feature set, EasyLogger provides a minimal core API that handles the essentials: log level filtering, timestamp and thread information inclusion, and thread-safe output. The architecture supports custom output backends, allowing developers to direct logs to terminals, files, serial ports, Flash storage, or other destinations. The tool includes both synchronous and asynchronous output modes, with buffering support for efficiency.
Developers should choose EasyLogger when working on projects where ROM usage under 1.6K and RAM usage under 0.3K are hard constraints. It suits bare-metal platforms and embedded operating systems including RT-Thread, UCOS, Linux, Windows, and Nuttx. The tool is simpler than alternatives like log4c and zlog, with fewer API functions and a faster learning curve, though this simplicity comes at the cost of less built-in functionality. The plugin architecture allows extending capabilities through add-ons for Flash storage and file operations without modifying the core library.
The project maintains active development with ongoing plugin expansion. Community contributions are explicitly welcomed for new plugins and features. The codebase demonstrates attention to practical embedded use cases, with support for raw log formats, hexdump output, dynamic filtering by tag and keyword, and per-level color customization. Documentation is provided in Chinese with API references covering the kernel functionality and configuration options.