Low Latency C++14/17 Logging Library

Started by odygrd, December 01, 2020, 12:50:46 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.


Quill is an asynchronous low latency logging library for modern C++ with a lot of functionality.

QuoteLog anything - Blazing fast.
Format outside of the hot-path in a backend logging thread. For non-built-in types ostream::operator<<() is called on a copy of the object by the backend logging thread. Unsafe to copy non-trivial user defined are detected in compile time. Those types can be tagged as safe-to-copy to avoid formatting them on the hot path. See User Defined Types.
Custom formatters. Logs can be formatted based on a user specified pattern.
Support for log stack traces. Store log messages in a ring buffer and display later on a higher severity log statement or on demand. See Backtrace Logging.
Various logging targets.
   Console logging with colours support.
   File Logging
   Rotating log files
   Time rotating log files
   Custom Handlers
Filters for filtering log messages.
guaranteed non-blocking or non-guaranteed logging. In non-guaranteed mode there is no heap allocation of a new queue but log messages can be dropped. See FAQ.
Support for wide character logging and wide character filenames (Windows only).
Log statements in timestamp order even when produced by different threads. This makes debugging easier in multi-threaded applications.
Log levels can be completely stripped out at compile time reducing if branches.
Clean warning-free codebase even on high warning levels.
Crash safe behaviour with a build-in signal handler.
Type safe python style API with compile type checks and built-in support for logging STL types/containers by using the excellent {fmt} library.

Link: https://github.com/odygrd/quill