# easylogging/easyloggingpp

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/easylogging-easyloggingpp).**

3,938 stars · 945 forks · C++ · MIT · archived

## Links

- GitHub: https://github.com/easylogging/easyloggingpp
- awesome-repositories: https://awesome-repositories.com/repository/easylogging-easyloggingpp.md

## Description

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

The toolset covers a broad range of observability capabilities, including stack trace capture, crash log handling, and execution time tracking for performance profiling. It provides management utilities for size-based file rotation, custom log layouts, and severity-level filtering, alongside support for serializing complex types and user-defined objects.

## Tags

### Programming Languages & Runtimes

- [C++ Logging Libraries](https://awesome-repositories.com/f/programming-languages-runtimes/c-logging-libraries.md) — Provides a high-performance, header-only C++ library specifically designed for diagnostic event recording.
- [Log Formatting](https://awesome-repositories.com/f/programming-languages-runtimes/language-features-paradigms/generics-templates/variadic-template-arguments/log-formatting.md) — Uses C++ variadic templates to provide type-safe log messages and custom object serialization.

### Software Engineering & Architecture

- [Thread-Safe Logging](https://awesome-repositories.com/f/software-engineering-architecture/thread-safe-logging.md) — Ensures multiple threads can log simultaneously without data corruption using synchronization mechanisms. ([source](https://github.com/easylogging/easyloggingpp#readme))
- [Asynchronous Processing](https://awesome-repositories.com/f/software-engineering-architecture/event-logging/asynchronous-processing.md) — Provides mechanisms to offload log event processing to background threads to minimize application latency.
- [Multi-Threaded Synchronization Primitives](https://awesome-repositories.com/f/software-engineering-architecture/process-coordinators/thread-and-process-synchronization/multi-threaded-synchronization-primitives.md) — Implements mutexes and synchronization primitives to ensure thread-safe access to shared logging state.
- [Thread-Safe Logging Frameworks](https://awesome-repositories.com/f/software-engineering-architecture/thread-safe-logging-frameworks.md) — Ships a logging system that ensures data integrity across concurrent threads using synchronization primitives.
- [Conditional Logging](https://awesome-repositories.com/f/software-engineering-architecture/conditional-logging.md) — Allows recording log entries only when specific boolean expressions are true to reduce noise.
- [Custom Object Logging](https://awesome-repositories.com/f/software-engineering-architecture/custom-log-formatting/custom-object-logging.md) — Allows recording of user-defined classes through loggable interfaces or type wrappers. ([source](https://github.com/easylogging/easyloggingpp#readme))
- [Function Execution Timing](https://awesome-repositories.com/f/software-engineering-architecture/function-execution-timing.md) — Tracks the duration of functions and code blocks to identify and analyze performance bottlenecks. ([source](https://github.com/easylogging/easyloggingpp#readme))
- [Log Layout Customization](https://awesome-repositories.com/f/software-engineering-architecture/log-layout-customization.md) — Defines the visual arrangement and structure of log messages using custom specifiers. ([source](https://github.com/easylogging/easyloggingpp#readme))
- [Log Entry Filters](https://awesome-repositories.com/f/software-engineering-architecture/stream-element-folding/distinct-element-filtering/predicate-based-filters/log-entry-filters.md) — Implements predicate-based logic to determine if a log entry should be emitted based on runtime conditions. ([source](https://github.com/easylogging/easyloggingpp#readme))
- [Variadic Formatting](https://awesome-repositories.com/f/software-engineering-architecture/thread-safe-logging-frameworks/variadic-formatting.md) — Provides type-safe log messages using a universal value specifier and a printf-like syntax. ([source](https://github.com/easylogging/easyloggingpp#readme))
- [Log Message Routing](https://awesome-repositories.com/f/software-engineering-architecture/type-based-message-routing/log-message-routing.md) — Dispatches log events from a generic API to specific handler implementations based on registration.

### Operating Systems & Systems Programming

- [C++ Diagnostic Utilities](https://awesome-repositories.com/f/operating-systems-systems-programming/c-diagnostic-utilities.md) — Provides a comprehensive set of tools for capturing stack traces, measuring execution time, and recording system errors.

### System Administration & Monitoring

- [Application Event Recording](https://awesome-repositories.com/f/system-administration-monitoring/application-event-recording.md) — Captures and writes runtime diagnostic messages and system events using configurable formats and severity levels. ([source](https://github.com/easylogging/easyloggingpp#readme))
- [Asynchronous Logging](https://awesome-repositories.com/f/system-administration-monitoring/asynchronous-logging.md) — Processes log entries on a background thread to minimize latency and prevent blocking the main application. ([source](https://github.com/easylogging/easyloggingpp#readme))
- [Severity Level Filtering](https://awesome-repositories.com/f/system-administration-monitoring/audit-log-filters/severity-level-filtering.md) — Filters log output based on predefined severity levels to discard low-priority entries.
- [Log Rotation Utilities](https://awesome-repositories.com/f/system-administration-monitoring/log-rotation-utilities.md) — Automatically archives or deletes log files when they reach a predefined size limit to maintain disk space. ([source](https://github.com/easylogging/easyloggingpp#readme))
- [Logging Configurations](https://awesome-repositories.com/f/system-administration-monitoring/logging-configurations.md) — Defines logging rules, file paths, and output destinations using configuration files or programmatic setup. ([source](https://github.com/easylogging/easyloggingpp#readme))
- [Logging Verbosity Controls](https://awesome-repositories.com/f/system-administration-monitoring/logging-verbosity-controls.md) — Controls the level of detail in logs using severity levels and fine-grained overrides. ([source](https://github.com/easylogging/easyloggingpp#readme))
- [Multi-Destination Log Routings](https://awesome-repositories.com/f/system-administration-monitoring/container-observability-tools/log-routing/multi-destination-log-routings.md) — Routes log data to multiple configurable destinations including local files, syslog, and remote network endpoints.
- [Independent Logger Instances](https://awesome-repositories.com/f/system-administration-monitoring/log-management/logger-hierarchies/independent-logger-instances.md) — Creates and manages isolated logger instances to organize different event streams. ([source](https://github.com/easylogging/easyloggingpp#readme))
- [Log Output Formatting](https://awesome-repositories.com/f/system-administration-monitoring/log-output-formatting.md) — Controls the appearance and structure of log entries to meet specific readability or reporting requirements. ([source](https://github.com/easylogging/easyloggingpp#readme))
- [Log Sinks](https://awesome-repositories.com/f/system-administration-monitoring/log-sinks.md) — Supports pluggable output destinations via custom callbacks to route log events to various backends. ([source](https://github.com/easylogging/easyloggingpp#readme))
- [Stack Trace Capturers](https://awesome-repositories.com/f/system-administration-monitoring/monitoring-and-observability/observability-platforms/metric-performance-monitors/virtual-thread-monitors/thread-activity-monitors/stack-trace-capturers.md) — Records the current sequence of method calls to identify the exact cause of a logging event. ([source](https://github.com/easylogging/easyloggingpp#readme))
- [Remote Application Logging](https://awesome-repositories.com/f/system-administration-monitoring/remote-application-logging.md) — Provides frameworks for streaming application logs to central monitoring interfaces or remote network destinations.
- [Application Crash Logging](https://awesome-repositories.com/f/system-administration-monitoring/system-log-monitoring/application-crash-logging.md) — Intercepts critical system signals to capture software failure data and write crash logs for troubleshooting. ([source](https://github.com/easylogging/easyloggingpp#readme))
- [Custom Log Writers](https://awesome-repositories.com/f/system-administration-monitoring/system-logging/custom-log-writers.md) — Implements custom writers to intercept and route diagnostic messages to external destinations. ([source](https://github.com/easylogging/easyloggingpp#readme))

### Data & Databases

- [Complex Data Serialization](https://awesome-repositories.com/f/data-databases/complex-data-serialization.md) — Provides serialization support for non-primitive data types, custom classes, and containers within the log stream. ([source](https://github.com/easylogging/easyloggingpp#readme))

### Development Tools & Productivity

- [Log File Rotators](https://awesome-repositories.com/f/development-tools-productivity/file-content-appenders/data-appending/log-file-rotators.md) — Manages log file lifecycles by rotating files when they reach predefined size limits.

### Testing & Quality Assurance

- [Performance Profilers](https://awesome-repositories.com/f/testing-quality-assurance/performance-profilers.md) — Measures function execution time and records checkpoints to identify performance bottlenecks.

### Part of an Awesome List

- [Logging Libraries](https://awesome-repositories.com/f/awesome-lists/devtools/logging-libraries.md) — Header-only C++ logging library.
