A single-header C++ logging library offering asynchronous low-latency logging, high configurability, and extensive built-in features.
Easylogging++ is a single-header C++ logging library that provides powerful, configurable, and high-performance logging for applications. It solves the need for a lightweight, feature-rich logging solution without external dependencies, offering asynchronous logging, performance tracking, and extensibility for custom classes and third-party libraries.
C++ developers working on applications ranging from embedded systems to desktop software who need a flexible, high-performance logging library with minimal setup and no external dependencies.
Developers choose Easylogging++ for its combination of being a single-header library with extensive features like asynchronous logging, performance tracking, and deep configurability, all while maintaining portability and thread safety without relying on external libraries like Boost or Qt.
C++ logging library. It is powerful, supports asynchronous low latency, extendable, light-weight, fast performing, thread and type safe and consists of many built-in features. It provides ability to write logs in your own customized format. It also provide support for logging your classes, third-party libraries, STL and third-party containers etc.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Easylogging++ is primarily a single-header library with an optional source file, making integration straightforward without external dependencies like Boost or Qt, as emphasized in its philosophy.
It includes asynchronous logging, performance tracking with macros, crash handling with stack traces (on GCC), and extensibility for custom classes and STL containers, covering diverse logging needs.
Supports customizable log formats, levels, and outputs via configuration files or code, with detailed specifiers for date/time and custom formats, allowing fine-grained control.
Designed to be portable across systems without relying on external libraries, with compatibility for various compilers and platforms, as noted in the build matrix.
The project is explicitly archived since 2018, meaning no bug fixes, security updates, or support for new C++ standards, making it risky for long-term use.
While single-header, some features like asynchronous logging require specific macros (e.g., ELPP_THREAD_SAFE) and configuration, and later versions moved from header-only to needing a source file, adding setup steps.
As the author recommends spdlog for new projects, the ecosystem, community contributions, and documentation may be stagnant, with potential gaps in support for modern development practices.
Despite features like asynchronous logging, the archived nature means it might lack optimizations found in newer libraries, and some benchmarks in the README note incomplete comparisons that could mislead users.