Repolode
odygrd

odygrd/quill

Biblioteca asíncrona de logging y métricas en C++17 con latencia ultrabaja que delega el formateo y la E/S a un hilo en segundo plano.

Estrellas
3,057
Forks
274
Issues abiertos
7
Último commit
hace 4 días

¿Qué es?

Quill es una biblioteca de logging en C++17 que evita que el formateo y la E/S se ejecuten en los hilos de la aplicación sensibles a la latencia. El hilo que realiza la llamada solo codifica los argumentos de log en una cola lock-free por hilo; más tarde, un worker dedicado del backend los decodifica, les da formato con {fmt} y los escribe en los sinks configurados.

Además de logs de texto, Quill puede publicar muestras de métricas registradas previamente a través del mismo backend asíncrono. Incluye un sink de Prometheus que admite counters, gauges, histograms y summaries; los sinks personalizados pueden enviar muestras a StatsD, OpenTelemetry u otros collectors. También incluye salida de consola en color, archivos rotativos, salida JSON, filtros por sink, contexto MDC, macros con limitación de tasa y logging de backtrace.

La biblioteca es compatible con Linux, macOS, Windows y BSD. Se puede instalar con vcpkg, Conan, Homebrew, Conda, Bzlmod y otros gestores de paquetes, o integrar como código vendorizado con CMake. Ofrece tanto una API basada en macros, para obtener la menor latencia, como una API de funciones sin macros.

Funciones clave

  • 01Codifica los argumentos de log en el hilo que realiza la llamada y les da formato en un worker en segundo plano.
  • 02Publica métricas registradas previamente con un sink de Prometheus incluido y sinks personalizados.
  • 03Admite salida de consola en color, archivos rotativos y logging en JSON.
  • 04Ofrece filtros por sink, contexto MDC y macros de log con limitación de tasa.
  • 05Proporciona colas configurables, limitadas o ilimitadas, con comportamiento de bloqueo o descarte.
  • 06Incluye un manejador de señales de crash y un sink de logging para Android.

Casos de uso

  • Logging en sistemas C++ de trading, robótica o tiempo real sensibles a la latencia.
  • Añadir logging estructurado asíncrono a un servicio C++ de alto rendimiento.
  • Exportar métricas de una aplicación a Prometheus desde un proceso C++.
  • Ejecutar logging de C++ en destinos Linux, macOS, Windows, BSD o Android.

Inicio rápido

  1. 1

    Instala Quill con un gestor de paquetes, como vcpkg

    vcpkg install quill
  2. 2

    Instala Quill con Homebrew

    brew install quill
  3. 3

    Usa simple_logger() en tu código C++ para registrar mensajes en la consola o en un archivo, como se muestra en el ejemplo Quickest Setup

Antes de usarlo

  • Requiere C++17 o una versión posterior.

Temas

Preguntas frecuentes

¿Qué es quill?
Biblioteca asíncrona de logging y métricas en C++17 con latencia ultrabaja que delega el formateo y la E/S a un hilo en segundo plano. Quill es una biblioteca de logging en C++17 que evita que el formateo y la E/S se ejecuten en los hilos de la aplicación sensibles a la latencia. El hilo que realiza la llamada solo codifica los argumentos de log en una cola lock-free por hilo; más tarde, un worker dedicado del backend los decodifica, les da formato con {fmt} y los escribe en los sinks configurados.
¿quill es gratuito? ¿Qué licencia tiene?
quill es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿quill sigue mantenido?
Mantenimiento activo. El último commit de quill fue el 17 oct 2026.
¿Para qué puedo usar quill?
Logging en sistemas C++ de trading, robótica o tiempo real sensibles a la latencia. Añadir logging estructurado asíncrono a un servicio C++ de alto rendimiento. Exportar métricas de una aplicación a Prometheus desde un proceso C++. Ejecutar logging de C++ en destinos Linux, macOS, Windows, BSD o Android.
¿Cómo se instala quill?
Instala Quill con un gestor de paquetes, como vcpkg: vcpkg install quill Instala Quill con Homebrew: brew install quill Usa simple_logger() en tu código C++ para registrar mensajes en la consola o en un archivo, como se muestra en el ejemplo Quickest Setup
¿Dónde consigo quill?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/odygrd/quill

Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.

Proyectos relacionados