Plataforma open source para consultar, visualizar, criar alertas e explorar métricas, logs e traces de várias fontes de dados.
odygrd/quill
Biblioteca assíncrona de logging e métricas em C++17, com latência ultrabaixa, que adia a formatação e a I/O para uma thread em segundo plano.
- Estrelas
- 3,057
- Forks
- 274
- Issues abertas
- 7
- Último commit
- há 4 dias
O que é?
Quill é uma biblioteca de logging em C++17 que mantém a formatação e a I/O fora das threads da aplicação sensíveis à latência. A thread que faz a chamada apenas codifica os argumentos do log em uma fila lock-free por thread; depois, uma thread dedicada do backend os decodifica, formata com {fmt} e os grava nos sinks configurados.
Além de logs de texto, o Quill pode publicar amostras de métricas pré-registradas pelo mesmo backend assíncrono. Um sink Prometheus incluído oferece suporte a counters, gauges, histograms e summaries, e sinks personalizados podem encaminhar amostras para StatsD, OpenTelemetry ou outros coletores. A biblioteca também inclui saída colorida no console, arquivos com rotação, saída JSON, filtros por sink, contexto MDC, macros com limite de taxa e logging de backtrace.
A biblioteca oferece suporte a Linux, macOS, Windows e BSD. Ela pode ser instalada via vcpkg, Conan, Homebrew, Conda, Bzlmod e vários outros gerenciadores de pacotes, ou incluída no projeto com CMake. Oferece tanto uma API baseada em macros, para obter a menor latência, quanto uma API de funções sem macros.
Recursos principais
- 01Codifica os argumentos do log na thread que faz a chamada e os formata em uma thread em segundo plano.
- 02Publica métricas pré-registradas com um sink Prometheus incluído e sinks personalizados.
- 03Oferece saída colorida no console, arquivos com rotação e logging em JSON.
- 04Oferece filtros por sink, contexto MDC e macros de log com limite de taxa.
- 05Disponibiliza filas configuráveis, limitadas ou ilimitadas, com comportamento de bloqueio ou descarte.
- 06Inclui um manipulador de sinais de crash e um sink de logging para Android.
Casos de uso
- Fazer logging em sistemas de trading, robótica ou tempo real em C++ sensíveis à latência.
- Adicionar logging estruturado assíncrono a um serviço C++ de alto throughput.
- Exportar métricas da aplicação para o Prometheus a partir de um processo C++.
- Executar logging em C++ em plataformas Linux, macOS, Windows, BSD ou Android.
Início rápido
- 1
Instale o Quill com um gerenciador de pacotes, como o vcpkg
vcpkg install quill - 2
Instale o Quill com o Homebrew
brew install quill - 3
Use simple_logger() no seu código C++ para registrar mensagens no console ou em um arquivo, como mostrado no exemplo Quickest Setup
Antes de usar
- Requer C++17 ou posterior.
Tópicos
Perguntas frequentes
- O que é quill?
- Biblioteca assíncrona de logging e métricas em C++17, com latência ultrabaixa, que adia a formatação e a I/O para uma thread em segundo plano. Quill é uma biblioteca de logging em C++17 que mantém a formatação e a I/O fora das threads da aplicação sensíveis à latência. A thread que faz a chamada apenas codifica os argumentos do log em uma fila lock-free por thread; depois, uma thread dedicada do backend os decodifica, formata com {fmt} e os grava nos sinks configurados.
- quill é gratuito? Qual é a licença?
- quill é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
- quill ainda é mantido?
- Manutenção ativa. O último commit de quill foi em 17 de out. de 2026.
- Para que posso usar quill?
- Fazer logging em sistemas de trading, robótica ou tempo real em C++ sensíveis à latência. Adicionar logging estruturado assíncrono a um serviço C++ de alto throughput. Exportar métricas da aplicação para o Prometheus a partir de um processo C++. Executar logging em C++ em plataformas Linux, macOS, Windows, BSD ou Android.
- Como instalar quill?
- Instale o Quill com um gerenciador de pacotes, como o vcpkg: vcpkg install quill Instale o Quill com o Homebrew: brew install quill Use simple_logger() no seu código C++ para registrar mensagens no console ou em um arquivo, como mostrado no exemplo Quickest Setup
- Onde consigo quill?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/odygrd/quill
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Prometheus é um sistema open source de monitoramento de sistemas e serviços que coleta métricas, avalia regras e dispara alertas.
Plataforma open source de observabilidade nativa do OpenTelemetry que reúne logs, métricas, traces, alertas e dashboards em uma única ferramenta que pode ser hospedada por você.
Sistema de agregação de logs multi-tenant e horizontalmente escalável que indexa apenas labels, não o conteúdo dos logs, da Grafana Labs.
Sistema de APM para monitorar, rastrear e diagnosticar arquiteturas distribuídas e cloud-native de microsserviços.
Plataforma de observabilidade auto-hospedável para logs, métricas, traces, RUM e monitoramento de LLMs, desenvolvida em Rust e apresentada como alternativa ao Datadog e ao Splunk.