Repolode
uber-go

uber-go/zap

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.

Estrelas
24,678
Forks
1,575
Issues abertas
201
Último commit
mês passado

O que é?

Zap é uma biblioteca de logging para Go que grava entradas estruturadas com campos tipados de chave e valor e oferece suporte a níveis de log. Ela é voltada a aplicações que registram logs em caminhos críticos de execução, onde a serialização baseada em reflection e a formatação de strings gerariam um custo significativo de CPU e alocações.

Zap oferece duas APIs. Logger usa valores Field fortemente tipados e evita alocações na maioria das chamadas, enquanto SugaredLogger aceita pares de chave e valor com tipos flexíveis e formatação no estilo printf, com um custo moderado de desempenho. Ambas são baseadas em um encoder JSON que não usa reflection. O conjunto de benchmarks do próprio projeto compara a biblioteca com pacotes como zerolog, slog, logrus e outros semelhantes ao zap.

A biblioteca está documentada no pkg.go.dev, e sua API é marcada como estável, sem mudanças incompatíveis planejadas para a série 1.x. Ela exige uma das duas versões minor mais recentes do Go.

Recursos principais

  • 01Logging estruturado com valores Field fortemente tipados.
  • 02SugaredLogger com APIs de chave e valor de tipos flexíveis e formatação no estilo printf.
  • 03Encoder JSON sem reflection e sem alocações.
  • 04Logging com níveis e presets para produção e desenvolvimento.

Casos de uso

  • Registrar logs em serviços Go sensíveis à latência, nos quais o custo de alocação é importante.
  • Emitir logs JSON que sistemas de agregação de logs possam analisar.
  • Adicionar campos de contexto estruturados a requisições em serviços de backend.

Início rápido

  1. 1

    Instale a biblioteca zap com go get

    go get -u go.uber.org/zap
  2. 2

    Crie um logger de produção e registre mensagens com SugaredLogger

Antes de usar

  • Oferece suporte apenas às duas versões menores mais recentes do Go.

Em coleções

Tópicos

Perguntas frequentes

O que é zap?
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. Zap é uma biblioteca de logging para Go que grava entradas estruturadas com campos tipados de chave e valor e oferece suporte a níveis de log. Ela é voltada a aplicações que registram logs em caminhos críticos de execução, onde a serialização baseada em reflection e a formatação de strings gerariam um custo significativo de CPU e alocações.
zap é gratuito? Qual é a licença?
zap é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
zap ainda é mantido?
Atualizado nos últimos 6 meses. O último commit de zap foi em 16 de set. de 2026.
Para que posso usar zap?
Registrar logs em serviços Go sensíveis à latência, nos quais o custo de alocação é importante. Emitir logs JSON que sistemas de agregação de logs possam analisar. Adicionar campos de contexto estruturados a requisições em serviços de backend.
Como instalar zap?
Instale a biblioteca zap com go get: go get -u go.uber.org/zap Crie um logger de produção e registre mensagens com SugaredLogger
Onde consigo zap?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/uber-go/zap

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

Projetos relacionados