Repolode
rs

rs/zerolog

Logger JSON de alocação zero para Go, com API encadeável, logs por nível e amostragem, além de saída opcional em CBOR.

Estrelas
12,519
Forks
657
Issues abertas
166
Último commit
há 10 dias

O que é?

Zerolog é uma biblioteca de logging estruturado para Go que grava eventos em JSON ou, quando compilada com uma tag, em CBOR. Os eventos de log são montados por meio de uma API encadeável que adiciona campos chave-valor fortemente tipados, sem reflection, mantendo as alocações zeradas nos caminhos mais comuns dos benchmarks.

A biblioteca oferece sete níveis, de trace a panic, controle de nível global e por logger, amostragem de logs e hooks que podem adicionar campos a todos os eventos. A integração com context permite associar um logger a um context.Context e recuperá-lo depois; o pacote hlog também oferece helpers para handlers net/http. Além disso, inclui um slog.Handler para que código que usa a API padrão log/slog possa encaminhar registros pelo zerolog.

No desenvolvimento local, o zerolog.ConsoleWriter transforma eventos em linhas coloridas e legíveis, mas é mais lento que o caminho JSON e não foi projetado para produção. Também é possível obter stack traces de erros por meio do subpacote pkgerrors.

Recursos principais

  • 01API encadeável que grava em JSON ou CBOR sem reflection nem alocações nos caminhos mais comuns
  • 02Sete níveis de log, com controle global de nível
  • 03Amostragem de logs, incluindo samplers burst e basic
  • 04Hooks para adicionar campos a todos os eventos
  • 05Integração com context.Context, handlers net/http e log/slog
  • 06ConsoleWriter para saída colorida no ambiente local

Casos de uso

  • Registrar logs em serviços Go de alto throughput, nos quais o overhead de alocação é relevante
  • Emitir logs JSON estruturados para ingestão por sistemas de agregação de logs
  • Adicionar campos específicos de cada requisição aos logs de servidores HTTP
  • Adaptar código existente baseado em slog para um backend JSON

Início rápido

  1. 1

    Instale o módulo

    go get -u github.com/rs/zerolog/log
  2. 2

    Importe o logger global e registre uma mensagem

Antes de usar

  • É voltado para saída JSON estruturada (ou CBOR); para obter uma saída adequada ao console, é necessário usar o ConsoleWriter, que é menos eficiente.

Em coleções

Tópicos

Perguntas frequentes

O que é zerolog?
Logger JSON de alocação zero para Go, com API encadeável, logs por nível e amostragem, além de saída opcional em CBOR. Zerolog é uma biblioteca de logging estruturado para Go que grava eventos em JSON ou, quando compilada com uma tag, em CBOR. Os eventos de log são montados por meio de uma API encadeável que adiciona campos chave-valor fortemente tipados, sem reflection, mantendo as alocações zeradas nos caminhos mais comuns dos benchmarks.
zerolog é gratuito? Qual é a licença?
zerolog é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
zerolog ainda é mantido?
Manutenção ativa. O último commit de zerolog foi em 14 de out. de 2026.
Para que posso usar zerolog?
Registrar logs em serviços Go de alto throughput, nos quais o overhead de alocação é relevante Emitir logs JSON estruturados para ingestão por sistemas de agregação de logs Adicionar campos específicos de cada requisição aos logs de servidores HTTP Adaptar código existente baseado em slog para um backend JSON
Como instalar zerolog?
Instale o módulo: go get -u github.com/rs/zerolog/log Importe o logger global e registre uma mensagem
Onde consigo zerolog?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/rs/zerolog

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados