Repolode
odygrd

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. 1

    Установите Quill с помощью менеджера пакетов, например vcpkg

    vcpkg install quill
  2. 2

    Установите Quill с помощью Homebrew

    brew install quill
  3. 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 обновляется ежедневно.

Похожие проекты

Платформа наблюдаемости с открытым исходным кодом и нативной поддержкой OpenTelemetry: логи, метрики, трейсы, алерты и дашборды в одном решении для самостоятельного размещения.

32,4 тыс.2,5 тыс.TypeScriptOtherОбновлён 12 часов назад