armink/EasyLogger logo

armink/EasyLogger

Free

An ultra-lightweight(ROM<1.6K, RAM<0.3k), high-performance C/C++ log library. | 一款超轻量级(ROM<1.6K, RAM<0.3k)、高性能的 C/C++ 日志库

FreeFree tier
Type
Open Source

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

Ultra-lightweight: ROM 1.6K, RAM 0.3K
High-performance C/C++ log library
Customizable output methods (terminal, file, Flash, serial, etc.)
Thread-safe with asynchronous and buffered output modes
Supports multiple operating systems and bare-metal platforms
RAW format and hexdump support
Dynamic filtering by tag, level, and keyword
Color-coded log levels
Extensible via plugins (Flash, File, and more)
Static and dynamic level configuration

Pros & Cons

Pros
  • 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
Cons
  • 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

Best For

IoT product development and debuggingWearable device loggingSmart home system loggingEmbedded system debugging and monitoringResource-constrained MCU projectsHistorical log storage in Flash without file system

FAQ

What platforms does EasyLogger support?
EasyLogger supports RT-Thread, UCOS, Linux, Windows, Nuttx, and bare-metal (no OS) platforms.
How can I change the log output destination?
The library allows user-defined output ports. Plugins provide file and Flash storage. Any output method can be implemented by porting.
Does EasyLogger support filtering logs?
Yes, it supports filtering by tag (module/function), log level (Assert to Verbose), and keyword. RAW and hexdump formats do not support tag/keyword filtering.
Is EasyLogger thread-safe?
Yes, the log output is designed to be thread-safe and supports asynchronous and buffered output modes.
What is the license of EasyLogger?
EasyLogger is released under the MIT license, allowing free use, modification, and distribution.