awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
armink avatar

armink/EasyLogger

0
View on GitHub↗
4,641 stars·1,308 forks·C·MIT·31 views

EasyLogger

EasyLogger is a lightweight C/C++ logging library and asynchronous framework designed for embedded systems, IoT devices, and wearables. It functions as a resource-efficient logger and flash memory manager, providing tools for low-level debugging and system event recording with minimal ROM and RAM requirements.

The project distinguishes itself through an asynchronous logging model that buffers messages to a separate thread, preventing logging operations from blocking real-time application execution. It includes a specialized flash memory manager that utilizes circular buffering to persist logs in non-volatile storage, ensuring critical data is preserved across device reboots.

The library covers a broad range of observability capabilities, including system assertions for state validation, compile-time and runtime severity filtering, and the generation of raw binary hexadecimal dumps. It supports metadata enrichment with timestamps and thread identifiers, alongside a portable interface for routing logs to custom destinations such as serial ports or files.

The system ensures data integrity through write synchronization and provides mechanisms for manual buffer flushing and stored log retrieval.

Features

  • Log Buffering - Decouples log generation from physical writing using high-speed RAM buffers and a background thread.
  • System Logging and Debugging - Implements a resource-efficient logging system designed for monitoring and debugging embedded hardware.
  • Flash Storage Managers - Manages the writing and retrieval of log data from non-volatile flash memory blocks.
  • Persistent Log Buffers - Implements disk-backed storage mechanisms to persist logs in non-volatile flash memory.
  • Embedded System Loggers - Acts as a resource-efficient logger specifically tailored for IoT and wearable devices.
  • Non-Volatile Storage - Ensures critical system logs are preserved across reboots using persistent flash-based storage.
  • Flash Circular Buffers - Provides non-volatile log storage using a circular wrap-around mechanism to maintain a fixed memory footprint.
  • Log Message Formatting - Formats log messages to include metadata such as timestamps, thread IDs, and file paths.
  • Module Tagging - Uses tags to identify specific modules within formatted log messages across different severity levels.
  • C++ Logging Libraries - Provides a lightweight C/C++ library for recording system events and diagnostics in embedded applications.
  • Execution Context Metadata - Enriches log entries with timestamps, process identifiers, and thread information to aid debugging.
  • Asynchronous Logging - Offloads log writing to a background process to ensure logging operations do not block real-time execution.
  • Custom Log Destinations - Directs log data to a variety of portable destinations including serial ports, files, and flash memory.
  • Asynchronous - Ships as an asynchronous logging framework that buffers messages to prevent blocking the main application.
  • Runtime Log Filters - Suppresses or displays logs at runtime based on severity levels, category tags, or keywords.
  • Log Appearance Configurations - Configures which metadata components appear in the output for different severity levels.
  • Asynchronous Buffer Management - Processes logs in the background and manages temporary buffers to maintain application responsiveness.
  • Firmware Debugging - Provides low-level debugging capabilities for firmware, including severity filters and raw binary dumps.
  • Log File Rotators - Manages log file lifecycle by automatically rotating files based on maximum size.
  • IoT Device Development - Supports software behavior tracking and error diagnosis for connected IoT devices and wearables.
  • Binary Hex Dumps - Records unformatted raw data and generates hexadecimal dumps for binary stream debugging.
  • Write Buffering - Accumulates log data in RAM buffers before writing to flash to optimize I/O performance.
  • Flash Log Retrieval - Allows reading logs from flash memory by specific position, range, or as complete sets.
  • Low-Level Debuggers - Generates raw hexadecimal dumps and binary data outputs for low-level system state analysis.
  • Custom Log Formatting - Allows users to define custom log layouts and inject metadata like severity levels and timestamps.
  • Log Interface Synchronization - Prevents log corruption during simultaneous access by locking the output interface using synchronization controls.
  • Logging Destination Plugins - Provides a portable interface for plugging in custom output destinations such as serial ports or files.
  • Compile-Time Instrumentation Filtering - Removes log statements below a certain priority during compilation to minimize binary size.
  • Embedded Log Exporters - Forwards saved logs from flash memory to external targets like serial ports or network interfaces.
  • Embedded Software Libraries - Lightweight and high-performance C/C++ logging library.
  • Embedded Utility Libraries - Lightweight and high-performance logging library for C/C++.
  • Formatting and Logging - Ultra-lightweight high-performance C/C++ log library.
  • Windows Environments - Listed in the “Windows Environments” section of the Awesome C awesome list.

Star history

Star history chart for armink/easyloggerStar history chart for armink/easylogger

How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Projects sharing features with EasyLogger

These projects share indexed features with EasyLogger. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • gabime/spdloggabime avatar

    gabime/spdlog

    28,922View on GitHub↗

    spdlog is a high-performance C++ logging library designed to record diagnostic messages and application events. It serves as an asynchronous logging framework and thread-safe library that coordinates access across concurrent threads to maintain message integrity. The project functions as a multi-target log router, distributing single events to multiple destinations such as consoles, files, and system daemons. It includes a log rotation manager that handles file lifecycles through basic, rotating, or daily rollover strategies to prevent disk exhaustion. The library covers a broad range of cap

    C++cppcpp11header-only
    View on GitHub↗28,922
  • easylogging/easyloggingppeasylogging avatar

    easylogging/easyloggingpp

    3,938View on GitHub↗

    Easyloggingpp is a header-only C++ logging framework and diagnostic tool designed for recording system events and diagnostic messages. It functions as a thread-safe logging library that synchronizes access across multiple concurrent execution threads to prevent data corruption during event recording. The framework features an asynchronous logger that processes messages on a background thread to minimize latency and prevent blocking the main application. It also acts as a log dispatcher, capable of routing data to local files, system syslog facilities, or remote network destinations for system

    C++
    View on GitHub↗3,938
  • nlog/nlogNLog avatar

    NLog/NLog

    6,542View on GitHub↗

    NLog is an open-source logging framework for .NET that functions as a structured logging library and log routing engine. It captures log events with named parameters as searchable data rather than plain text and directs these messages to various output destinations based on severity and source. The framework is designed as an extensible platform, supporting custom targets, layout renderers, and filters that can be loaded from external assemblies or defined in code. It features a dynamic configuration system that allows logging targets, rules, and layouts to be updated via XML or programmatic

    C#aotaot-compatiblec-sharp
    View on GitHub↗6,542
  • log4js-node/log4js-nodeL

    log4js-node/log4js-node

    5,838View on GitHub↗

    This is a logging framework for Node.js based on the log4j architecture. It provides a system for managing hierarchical loggers and severity thresholds, allowing application events to be recorded and categorized across different levels of importance. The framework is distinguished by its cluster-aware logging, which synchronizes and coordinates output across multiple process clusters into a unified stream. It also includes a dedicated log file rotation manager that automatically rolls files by date or size to prevent disk space exhaustion, and a network log transporter for sending data to rem

    JavaScript
    View on GitHub↗5,838
Compare all 30 related projects→

Frequently asked questions

What does armink/easylogger do?

EasyLogger is a lightweight C/C++ logging library and asynchronous framework designed for embedded systems, IoT devices, and wearables. It functions as a resource-efficient logger and flash memory manager, providing tools for low-level debugging and system event recording with minimal ROM and RAM requirements.

What are the main features of armink/easylogger?

The main features of armink/easylogger are: Log Buffering, System Logging and Debugging, Flash Storage Managers, Persistent Log Buffers, Embedded System Loggers, Non-Volatile Storage, Flash Circular Buffers, Log Message Formatting.

Which projects share features with armink/easylogger?

Projects with overlapping indexed features include: gabime/spdlog — spdlog is a high-performance C++ logging library designed to record diagnostic messages and application events. It… easylogging/easyloggingpp — Easyloggingpp is a header-only C++ logging framework and diagnostic tool designed for recording system events and… nlog/nlog — NLog is an open-source logging framework for .NET that functions as a structured logging library and log routing… log4js-node/log4js-node — This is a logging framework for Node.js based on the log4j architecture. It provides a system for managing… abumq/easyloggingpp — This project is a thread-safe, asynchronous logging library designed for C++ applications. It provides a comprehensive… unjs/consola — Consola is a diagnostic logging utility and log output manager that provides a unified interface for Node.js and web…