Платформа с открытым исходным кодом для запросов, визуализации, оповещений и изучения метрик, логов и трейсов из множества источников данных.
odygrd/quill
Асинхронная библиотека логирования и метрик на C++17 с минимальными задержками: форматирование и ввод-вывод выполняются в фоновом потоке.
- Звёзды
- 3,057
- Форки
- 274
- Открытые issues
- 7
- Последний коммит
- 4 дня назад
Что это?
Quill — библиотека логирования на C++17, которая не выполняет форматирование и ввод-вывод в потоках приложения, чувствительных к задержкам. Вызывающий поток лишь кодирует аргументы логов в lock-free очередь для каждого потока, а выделенный фоновый worker позднее декодирует их, форматирует с помощью {fmt} и записывает в настроенные приёмники.
Помимо текстовых логов, Quill может публиковать предварительно зарегистрированные метрики через тот же асинхронный backend. В комплект входит Prometheus sink для счётчиков, gauge, гистограмм и сводок; пользовательские sink могут направлять данные в StatsD, OpenTelemetry и другие системы сбора. Также доступны цветной вывод в консоль, ротация файлов, вывод в JSON, фильтры для отдельных sink, контекст MDC, макросы с ограничением частоты и логирование backtrace.
Библиотека поддерживает Linux, macOS, Windows и BSD. Её можно установить через vcpkg, Conan, Homebrew, Conda, Bzlmod и ряд других менеджеров пакетов либо подключить к проекту как vendored-зависимость с помощью CMake. Доступны как API на макросах для минимальной задержки, так и API на функциях без макросов.
Ключевые возможности
- 01Кодирует аргументы логов в вызывающем потоке, а форматирует их в фоновом worker.
- 02Публикует предварительно зарегистрированные метрики через встроенный Prometheus sink и пользовательские sink.
- 03Поддерживает цветной вывод в консоль, ротацию файлов и логирование в JSON.
- 04Предоставляет фильтры для отдельных sink, контекст MDC и макросы логирования с ограничением частоты.
- 05Поддерживает настройку ограниченных и неограниченных очередей с блокирующим режимом или отбрасыванием данных.
- 06Включает обработчик сигналов при сбоях и sink для логирования на Android.
Сценарии использования
- Логирование в чувствительных к задержкам торговых, робототехнических системах и системах реального времени на C++.
- Добавление асинхронного структурированного логирования в высокопроизводительный сервис на C++.
- Экспорт метрик приложения из процесса на C++ в Prometheus.
- Использование логирования на C++ в целевых системах под Linux, macOS, Windows, BSD или Android.
Быстрый старт
- 1
Установите Quill с помощью менеджера пакетов, например vcpkg
vcpkg install quill - 2
Установите Quill с помощью Homebrew
brew install quill - 3
Используйте simple_logger() в коде C++, чтобы записывать сообщения в консоль или файл, как показано в примере Quickest Setup
Что важно знать
- Требуется C++17 или более поздняя версия.
Темы
Частые вопросы
- Что такое quill?
- Асинхронная библиотека логирования и метрик на C++17 с минимальными задержками: форматирование и ввод-вывод выполняются в фоновом потоке. Quill — библиотека логирования на C++17, которая не выполняет форматирование и ввод-вывод в потоках приложения, чувствительных к задержкам. Вызывающий поток лишь кодирует аргументы логов в lock-free очередь для каждого потока, а выделенный фоновый worker позднее декодирует их, форматирует с помощью {fmt} и записывает в настроенные приёмники.
- quill можно использовать бесплатно? Какая у него лицензия?
- quill распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- quill всё ещё поддерживается?
- Активно поддерживается. Последний коммит в quill — 17 окт. 2026 г..
- Для чего можно использовать quill?
- Логирование в чувствительных к задержкам торговых, робототехнических системах и системах реального времени на C++. Добавление асинхронного структурированного логирования в высокопроизводительный сервис на C++. Экспорт метрик приложения из процесса на C++ в Prometheus. Использование логирования на C++ в целевых системах под Linux, macOS, Windows, BSD или Android.
- Как установить quill?
- Установите Quill с помощью менеджера пакетов, например vcpkg: vcpkg install quill Установите Quill с помощью Homebrew: brew install quill Используйте simple_logger() в коде C++, чтобы записывать сообщения в консоль или файл, как показано в примере Quickest Setup
- Где скачать quill?
- Исходный код и инструкции по установке — на GitHub: https://github.com/odygrd/quill
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Prometheus — система мониторинга систем и сервисов с открытым исходным кодом, которая собирает метрики, вычисляет правила и отправляет оповещения.
Платформа наблюдаемости с открытым исходным кодом и нативной поддержкой OpenTelemetry: логи, метрики, трейсы, алерты и дашборды в одном решении для самостоятельного размещения.
Горизонтально масштабируемая многопользовательская система агрегации логов от Grafana Labs, которая индексирует только метки, а не содержимое логов.
APM-система для мониторинга, трассировки и диагностики распределённых и cloud-native микросервисных архитектур.
Самостоятельно размещаемая платформа наблюдаемости для логов, метрик, трейсов, RUM и мониторинга LLM на Rust — альтернатива Datadog и Splunk.