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.
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
Instale a biblioteca zap com go get
go get -u go.uber.org/zap - 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
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.
Logger estruturado e compatível com a API de Go, com formatadores e hooks extensíveis; atualmente em modo de manutenção.
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.
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.