A high-performance, attribute-based logging library for C++ with Python-like formatting and JSON output.
Blackhole is a C++ logging library that emphasizes performance and structured logging through attributes. It allows developers to attach metadata to log records and format them as strings or JSON, targeting applications where logging speed and flexibility are critical.
C++ developers building high-performance servers, distributed systems, or applications requiring detailed, structured logs for analysis or monitoring.
It offers superior performance compared to alternatives like Boost.Log or log4cxx, with a modern attribute-based design and zero runtime overhead for disabled log levels, making it ideal for latency-sensitive environments.
Yet another logging library.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Enables structured data with key-value pairs for filtering and routing, as demonstrated in the HTTP server example splitting logs into indexes like method, URI, and status.
Optimized for speed with compile-time formatting and minimal attribute copying, using efficient cppformat library instead of slower alternatives like boost::format.
Supports Python-like string formatting with placeholder specs and JSON tree construction with routing and renaming, allowing dynamic log output customization.
Requires verbose setup via JSON files or fluent builder API, which can be daunting compared to simpler libraries like spdlog with drop-in usage.
Several planned features like compile-time placeholder checking, full asynchronous pipelining, and scatter-gathered IO are marked as not implemented in the README's planning section.
Relies on Boost.Thread for thread-local storage, adding an external dependency that may complicate deployment in minimal or embedded environments.