Plataforma de código abierto para consultar, visualizar, explorar y configurar alertas sobre métricas, registros y trazas de múltiples fuentes de datos.
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
Instala Quill con un gestor de paquetes, como vcpkg
vcpkg install quill - 2
Instala Quill con Homebrew
brew install quill - 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
Prometheus es un sistema de código abierto para monitorear sistemas y servicios, recopilar métricas, evaluar reglas y activar alertas.
Plataforma de observabilidad de código abierto y nativa de OpenTelemetry que reúne logs, métricas, trazas, alertas y dashboards en una sola herramienta autohospedable.
Sistema de agregación de logs multiinquilino y escalable horizontalmente que indexa solo las etiquetas, no el contenido de los logs. De Grafana Labs.
Sistema APM para monitorear, trazar y diagnosticar arquitecturas distribuidas y cloud-native de microservicios.
Plataforma de observabilidad autoalojable para logs, métricas, trazas, RUM y monitorización de LLM, desarrollada en Rust y posicionada como alternativa a Datadog y Splunk.