# abumq/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/abumq-easyloggingpp).**

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

## Links

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

## Topics

`c-plus-plus` `c-plus-plus-11` `cpp` `crash-handler` `cross-platform` `efficient-logging` `language` `logging` `logging-library` `performance-analysis` `stacktrace` `thread-safety`

## Description

This project is a thread-safe, asynchronous logging library designed for C++ applications. It provides a comprehensive diagnostic toolkit that enables developers to record system events, track execution flow across multiple threads, and manage log output through severity-based filtering and automated file maintenance. By offloading log formatting and disk input/output to background worker threads, the library minimizes latency on the main execution path, ensuring high performance in time-critical systems.

The framework distinguishes itself through its flexible configuration and diagnostic capabilities. It supports runtime setup via external configuration files, allowing for adjustments to log levels and output patterns without requiring recompilation. Beyond standard logging, it includes built-in crash analysis tools that capture system signals and stack traces to facilitate post-mortem debugging, as well as performance profiling utilities to measure function execution times and identify bottlenecks.

The library offers a versatile routing system that dispatches diagnostic messages to multiple destinations, including files, consoles, and network sockets, or through custom interception callbacks. It handles complex data types and standard containers using template metaprogramming, ensuring consistent inspection of application state. Additionally, it provides granular control over log volume through conditional logic, frequency throttling, and module-specific verbosity settings.

## Tags

### Operating Systems & Systems Programming

- [C++ Diagnostic Utilities](https://awesome-repositories.com/f/operating-systems-systems-programming/c-diagnostic-utilities.md) — Provides a comprehensive diagnostic toolkit for recording stack traces, measuring execution time, and validating program state.
- [Crash State Capturing](https://awesome-repositories.com/f/operating-systems-systems-programming/crash-state-capturing.md) — Intercepts system signals during fatal crashes to record call stacks and application state for post-mortem debugging.

### Programming Languages & Runtimes

- [C++ Logging Libraries](https://awesome-repositories.com/f/programming-languages-runtimes/c-logging-libraries.md) — Provides a high-performance, thread-safe logging library specifically designed for diagnostic event recording in C++ applications.

### Software Engineering & Architecture

- [Thread-Safe Logging](https://awesome-repositories.com/f/software-engineering-architecture/thread-safe-logging.md) — Coordinates logging operations across multiple threads using internal synchronization to prevent data corruption. ([source](https://github.com/abumq/easyloggingpp#readme))
- [Thread-Safe Logging Frameworks](https://awesome-repositories.com/f/software-engineering-architecture/thread-safe-logging-frameworks.md) — Coordinates logging operations across multiple threads using internal synchronization to prevent data races.
- [Thread-Safe State Synchronization](https://awesome-repositories.com/f/software-engineering-architecture/thread-safe-state-synchronization.md) — Ensures thread-safe access to shared logger instances and output streams using internal synchronization primitives.
- [Worker Thread Patterns](https://awesome-repositories.com/f/software-engineering-architecture/worker-thread-patterns.md) — Offloads log formatting and disk I/O to dedicated background threads to minimize latency on the main execution path.
- [Custom Log Formatting](https://awesome-repositories.com/f/software-engineering-architecture/custom-log-formatting.md) — Constructs log messages using placeholders for timestamps, thread IDs, and custom application data. ([source](https://github.com/abumq/easyloggingpp#readme))

### System Administration & Monitoring

- [Asynchronous Log Processing](https://awesome-repositories.com/f/system-administration-monitoring/asynchronous-logging/asynchronous-log-processing.md) — Offloads log processing to background threads to maintain low latency and high performance in time-critical systems.
- [Severity Level Filtering](https://awesome-repositories.com/f/system-administration-monitoring/audit-log-filters/severity-level-filtering.md) — Controls log volume by enabling or disabling specific severity levels globally or per individual logger. ([source](https://github.com/abumq/easyloggingpp/blob/master/README.md))
- [Log Sinks](https://awesome-repositories.com/f/system-administration-monitoring/log-sinks.md) — Dispatches log records to multiple output destinations including files, consoles, and network sockets through a pluggable interface.
- [Multi-Destination Log Routings](https://awesome-repositories.com/f/system-administration-monitoring/container-observability-tools/log-routing/multi-destination-log-routings.md) — Dispatches log messages to multiple destinations including files, consoles, and network sockets. ([source](https://github.com/abumq/easyloggingpp#readme))
- [Log File Rotation](https://awesome-repositories.com/f/system-administration-monitoring/log-file-rotation.md) — Automatically truncates or archives log files when they reach a maximum size threshold to prevent disk overflow.
- [Logger Registries](https://awesome-repositories.com/f/system-administration-monitoring/log-management/logger-hierarchies/independent-logger-instances/logger-registries.md) — Provides a centralized registry to manage and retrieve independent logger instances by name for different application components. ([source](https://github.com/abumq/easyloggingpp/tree/v8.91))
- [Application Stack Trace Capturers](https://awesome-repositories.com/f/system-administration-monitoring/trace-sampling/stack-trace-aggregators/kernel-stack-trace-capture/application-stack-trace-capturers.md) — Records the current call stack during execution to diagnose the exact location of system events and errors. ([source](https://github.com/abumq/easyloggingpp/blob/master/CHANGELOG.md))
- [Unified Log Management](https://awesome-repositories.com/f/system-administration-monitoring/unified-log-management.md) — Synchronizes logging configurations and storage across multiple modules to maintain a unified diagnostic state. ([source](https://github.com/abumq/easyloggingpp#readme))

### Data & Databases

- [Template-Based Type Serializers](https://awesome-repositories.com/f/data-databases/data-type-managers/dynamic-type-managers/custom-type-serializers/template-based-type-serializers.md) — Uses template metaprogramming to resolve and format complex data types and standard containers for deep object inspection.
- [Loggable Type Resolvers](https://awesome-repositories.com/f/data-databases/data-type-managers/dynamic-type-managers/custom-type-serializers/template-based-type-serializers/loggable-type-resolvers.md) — Records containers, templates, and custom classes by extending a loggable base class for deep object inspection. ([source](https://github.com/abumq/easyloggingpp#readme))
- [Function Performance Tracking](https://awesome-repositories.com/f/data-databases/query-performance-analyzers/function-performance-tracking.md) — Tracks the duration of functions or code blocks and records performance results using optional checkpoints to identify bottlenecks. ([source](https://github.com/abumq/easyloggingpp/blob/master/README.md))

### 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 through automatic rotation based on size thresholds to prevent disk overflow.

### DevOps & Infrastructure

- [Configuration File Loading](https://awesome-repositories.com/f/devops-infrastructure/configuration-management/file-based-configuration/configuration-file-loading.md) — Loads runtime settings such as output destinations and log levels from external configuration files. ([source](https://github.com/abumq/easyloggingpp#readme))

### Testing & Quality Assurance

- [Performance Profiling](https://awesome-repositories.com/f/testing-quality-assurance/performance-testing-analysis/performance-profiling.md) — Measures function execution times and records performance checkpoints to identify bottlenecks in C++ code.

### Web Development

- [Logging Configuration Files](https://awesome-repositories.com/f/web-development/single-page-applications/single-file-distributions/json-configuration-files/logging-configuration-files.md) — Provides runtime configuration of logging levels and output patterns via external files without requiring recompilation.
