armink/EasyLogger
FreeAn ultra-lightweight(ROM<1.6K, RAM<0.3k), high-performance C/C++ log library. | 一款超轻量级(ROM<1.6K, RAM<0.3k)、高性能的 C/C++ 日志库
About armink/EasyLogger
EasyLogger is an ultra-lightweight, high-performance C/C++ log library designed for resource-sensitive projects such as IoT products, wearable devices, and smart home systems. It requires only 1.6 KB of ROM and 0.3 KB of RAM. The library supports custom output methods (e.g., terminal, file, database, serial, Flash), thread-safe operation, asynchronous and buffered output modes, and runs on multiple operating systems (RT-Thread, UCOS, Linux, Windows, Nuttx) as well as bare-metal platforms. Log output can include level, timestamp, thread/process information, and supports RAW format and hexdump. Filtering by tag, level, and keyword is available, and color output is configurable per level. EasyLogger is extensible via plugins, with existing plugins for Flash and File storage. It is open source under the MIT license.
Key Features
Pros & Cons
- Extremely low memory footprint (ROM 1.6K, RAM 0.3K)
- High performance with minimal overhead
- Thread-safe design suitable for multi-threaded environments
- Flexible output destination via user porting and plugins
- Comprehensive filtering (tag, level, keyword) for log management
- Color output improves readability
- Supports many popular RTOS and bare-metal systems
- Open source with MIT license, free to use
- Limited to C/C++ languages (no other language bindings)
- Documentation primarily in Chinese (some English available)
- Plugin ecosystem is early stage (only Flash and File plugins currently)
- Asynchronous output is an extension, not default (requires plugin)
- No built-in cloud or remote logging integration