Repolode
odygrd

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

    Instale o Quill com um gerenciador de pacotes, como o vcpkg

    vcpkg install quill
  2. 2

    Instale o Quill com o Homebrew

    brew install quill
  3. 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