Uma biblioteca de logging rápida, estruturada e com níveis para Go, com uma API Logger sem alocações e uma API SugaredLogger mais flexível.
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
Instale o módulo
go get -u github.com/rs/zerolog/log - 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
Logger estruturado e compatível com a API de Go, com formatadores e hooks extensíveis; atualmente em modo de manutenção.
Logger universal para TypeScript e JavaScript, com saída de terminal formatada, JSON estruturado com campos primeiro, mascaramento de segredos e nenhuma dependência em tempo de execução.
Biblioteca de logging sem dependências para JavaScript e TypeScript, compatível com Deno, Node.js, Bun, navegadores e edge functions.
Uma API unificada de logging em TypeScript que envia logs para Pino, Winston, serviços de nuvem, arquivos, StatsD e OpenTelemetry por uma única interface fluente.
Biblioteca de logging para Python que substitui a configuração padrão por um único logger, rotação de arquivos, saída colorida e logs estruturados.