Open-source platform to query, visualize, alert on and explore metrics, logs and traces from many data sources.
odygrd/quill
Ultra-low-latency asynchronous C++17 logging and metrics library that defers formatting and I/O to a background thread.
- Stars
- 3,057
- Forks
- 274
- Open issues
- 7
- Last commit
- 4 days ago
What is it?
Quill is a C++17 logging library that keeps formatting and I/O off latency-sensitive application threads. The calling thread only encodes log arguments into a per-thread lock-free queue, and a dedicated backend worker later decodes them, formats them with {fmt}, and writes them to the configured sinks.
Beyond text logs, Quill can publish pre-registered metric samples through the same asynchronous backend. A bundled Prometheus sink handles counters, gauges, histograms and summaries, and custom sinks can route samples to StatsD, OpenTelemetry or other collectors. Console output with color, rotating files, JSON output, per-sink filters, MDC context, rate-limited macros and backtrace logging are also included.
The library supports Linux, macOS, Windows and BSD, and can be installed through vcpkg, Conan, Homebrew, Conda, Bzlmod and several other package managers, or vendored with CMake. It offers both a macro API for the lowest latency and a macro-free function API.
Key features
- 01Encodes log arguments on the calling thread and formats them on a background worker.
- 02Publishes pre-registered metrics with a bundled Prometheus sink and custom sinks.
- 03Supports console output with color, rotating files and JSON logging.
- 04Offers per-sink filters, MDC context and rate-limited log macros.
- 05Provides configurable bounded or unbounded queues with blocking or dropping behavior.
- 06Includes a crash signal handler and an Android logging sink.
Use cases
- Logging in latency-sensitive C++ trading, robotics or real-time systems.
- Adding asynchronous structured logging to a high-throughput C++ service.
- Exporting application metrics to Prometheus from a C++ process.
- Running C++ logging on Linux, macOS, Windows, BSD or Android targets.
Quick start
- 1
Install Quill with a package manager, e.g. vcpkg
vcpkg install quill - 2
Install Quill with Homebrew
brew install quill - 3
Use simple_logger() in your C++ code to log to the console or a file, as shown in the Quickest Setup example
Things to know
- Requires C++17 or later.
Topics
FAQ
- What is quill?
- Ultra-low-latency asynchronous C++17 logging and metrics library that defers formatting and I/O to a background thread. Quill is a C++17 logging library that keeps formatting and I/O off latency-sensitive application threads. The calling thread only encodes log arguments into a per-thread lock-free queue, and a dedicated backend worker later decodes them, formats them with {fmt}, and writes them to the configured sinks.
- Is quill free to use? What license does it have?
- quill is open source under the MIT license. Check the license terms before using it in commercial products.
- Is quill still maintained?
- Actively maintained. The last commit to quill was on Oct 17, 2026.
- What can I use quill for?
- Logging in latency-sensitive C++ trading, robotics or real-time systems. Adding asynchronous structured logging to a high-throughput C++ service. Exporting application metrics to Prometheus from a C++ process. Running C++ logging on Linux, macOS, Windows, BSD or Android targets.
- How do I install quill?
- Install Quill with a package manager, e.g. vcpkg: vcpkg install quill Install Quill with Homebrew: brew install quill Use simple_logger() in your C++ code to log to the console or a file, as shown in the Quickest Setup example
- Where can I get quill?
- The source code and installation instructions are on GitHub: https://github.com/odygrd/quill
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
Prometheus is an open-source systems and service monitoring system that collects metrics, evaluates rules, and triggers alerts.
Open-source, OpenTelemetry-native observability platform that brings logs, metrics, traces, alerts and dashboards into one self-hostable tool.
Horizontally scalable, multi-tenant log aggregation system that indexes only labels, not log contents, from Grafana Labs.
An APM system for monitoring, tracing and diagnosing distributed and cloud-native microservice architectures.
Self-hostable observability platform for logs, metrics, traces, RUM and LLM monitoring, built in Rust and positioned as an alternative to Datadog and Splunk.