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.
sirupsen/logrus
Logger estruturado e compatível com a API de Go, com formatadores e hooks extensíveis; atualmente em modo de manutenção.
- Estrelas
- 25,764
- Forks
- 2,297
- Issues abertas
- 59
- Último commit
- há 22 dias
O que é?
Logrus é um logger estruturado para Go, compatível com a API do pacote padrão log, então é possível substituir as importações existentes de log com poucas alterações. Ele registra entradas com campos de chave-valor e um nível, e pode gerar texto colorido para terminais, texto no estilo logfmt ou JSON para sistemas de agregação de logs, como Logstash e Splunk.
O logger oferece sete níveis, de Trace a Panic, destinos de saída por logger usando qualquer io.Writer e contextos de campos reutilizáveis criados com WithFields. Hooks permitem encaminhar entradas para outros serviços, como rastreadores de erros ou syslog, e é possível adicionar formatadores personalizados implementando um método Format. O projeto também inclui a identificação do chamador, um hook de teste para verificar mensagens registradas e handlers para saída fatal.
O projeto está em modo de manutenção: os mantenedores se concentram em correções de segurança, bugs e desempenho, e limitam novos recursos à interoperabilidade, como a integração com log/slog do Go. O README indica Zerolog, Zap e Apex como alternativas desenvolvidas com práticas mais recentes de logging estruturado em Go.
Recursos principais
- 01Compatível diretamente com a API log da biblioteca padrão.
- 02Campos estruturados de chave-valor e sete níveis, de Trace a Panic.
- 03Formatadores para saída colorida no terminal, texto no estilo logfmt e JSON.
- 04Hooks para encaminhar entradas a serviços como syslog ou rastreadores de erros.
- 05Formatadores personalizados por meio de uma interface Format simples.
- 06Hook de teste para verificar mensagens registradas em testes unitários.
Casos de uso
- Adicionar logs JSON estruturados a um serviço Go para ingestão pelo Logstash ou Splunk.
- Migrar um projeto existente do pacote padrão log sem reescrever os pontos de chamada.
- Enviar entradas de nível de erro a um rastreador de exceções externo usando um hook.
- Verificar em testes unitários se mensagens específicas foram registradas.
Início rápido
- 1
Instale o módulo Logrus
go get github.com/sirupsen/logrus - 2
Importe-o no seu código Go e registre uma mensagem com campos
Antes de usar
- O Logrus está em modo de manutenção, portanto não há planos para adicionar novos recursos.
- O README indica alternativas como Zerolog, Zap e Apex.
Em coleções
Tópicos
Perguntas frequentes
- O que é logrus?
- Logger estruturado e compatível com a API de Go, com formatadores e hooks extensíveis; atualmente em modo de manutenção. Logrus é um logger estruturado para Go, compatível com a API do pacote padrão log, então é possível substituir as importações existentes de log com poucas alterações. Ele registra entradas com campos de chave-valor e um nível, e pode gerar texto colorido para terminais, texto no estilo logfmt ou JSON para sistemas de agregação de logs, como Logstash e Splunk.
- logrus é gratuito? Qual é a licença?
- logrus é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
- logrus ainda é mantido?
- Manutenção ativa. O último commit de logrus foi em 2 de out. de 2026.
- Para que posso usar logrus?
- Adicionar logs JSON estruturados a um serviço Go para ingestão pelo Logstash ou Splunk. Migrar um projeto existente do pacote padrão log sem reescrever os pontos de chamada. Enviar entradas de nível de erro a um rastreador de exceções externo usando um hook. Verificar em testes unitários se mensagens específicas foram registradas.
- Como instalar logrus?
- Instale o módulo Logrus: go get github.com/sirupsen/logrus Importe-o no seu código Go e registre uma mensagem com campos
- Onde consigo logrus?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/sirupsen/logrus
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.
Visualizador de logs via linha de comando que transforma logs JSON e logfmt em uma saída legível, com filtros, ordenação e acompanhamento em tempo real.
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.
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.