Un logger JSON para Go con cero asignaciones, API encadenable, logging por niveles y con muestreo, y salida opcional en CBOR.
sirupsen/logrus
Logger estructurado y compatible a nivel de API con Go, con formatters y hooks extensibles, actualmente en modo de mantenimiento.
- Estrellas
- 25,764
- Forks
- 2,297
- Issues abiertos
- 59
- Último commit
- hace 22 días
¿Qué es?
Logrus es un logger estructurado para Go compatible a nivel de API con el paquete log de la biblioteca estándar, por lo que se pueden reemplazar las importaciones de log existentes con pocos cambios. Escribe entradas con campos clave-valor y un nivel, y puede generar texto en color para terminales, texto al estilo logfmt o JSON para sistemas de agregación de logs como Logstash y Splunk.
El logger admite siete niveles, de Trace a Panic, destinos de salida por logger mediante cualquier io.Writer y contextos reutilizables con campos creados con WithFields. Los hooks permiten reenviar entradas a otros destinos, como sistemas de seguimiento de errores o syslog, y se pueden añadir formatters personalizados implementando un método Format. También incluye informes de llamadas, un hook de prueba para verificar los mensajes registrados y manejadores para la salida ante errores fatales.
El proyecto está en modo de mantenimiento: los responsables se centran en correcciones de seguridad, errores y rendimiento, y limitan las nuevas funciones a la interoperabilidad, por ejemplo, con Go's log/slog. El README señala Zerolog, Zap y Apex como alternativas diseñadas según prácticas más recientes de logging estructurado en Go.
Funciones clave
- 01Compatible directamente con la API log de la biblioteca estándar.
- 02Campos estructurados clave-valor con siete niveles, de Trace a Panic.
- 03Salida en color para terminales y formatters de texto al estilo logfmt y JSON.
- 04Hooks para reenviar entradas a servicios como syslog o sistemas de seguimiento de errores.
- 05Formatters personalizados mediante una interfaz Format sencilla.
- 06Hook de prueba para verificar los mensajes registrados en pruebas unitarias.
Casos de uso
- Añadir logs JSON estructurados a un servicio Go para que Logstash o Splunk los procesen.
- Migrar un proyecto existente desde el paquete log estándar sin reescribir los puntos de llamada.
- Enviar entradas de nivel de error a un sistema externo de seguimiento de excepciones mediante un hook.
- Verificar en pruebas unitarias que se hayan emitido mensajes de log específicos.
Inicio rápido
- 1
Instala el módulo Logrus
go get github.com/sirupsen/logrus - 2
Impórtalo en tu código Go y registra un mensaje con campos
Antes de usarlo
- Logrus está en modo de mantenimiento, por lo que no hay planes de añadir nuevas funciones.
- Su README menciona alternativas como Zerolog, Zap y Apex.
En colecciones
Temas
Preguntas frecuentes
- ¿Qué es logrus?
- Logger estructurado y compatible a nivel de API con Go, con formatters y hooks extensibles, actualmente en modo de mantenimiento. Logrus es un logger estructurado para Go compatible a nivel de API con el paquete log de la biblioteca estándar, por lo que se pueden reemplazar las importaciones de log existentes con pocos cambios. Escribe entradas con campos clave-valor y un nivel, y puede generar texto en color para terminales, texto al estilo logfmt o JSON para sistemas de agregación de logs como Logstash y Splunk.
- ¿logrus es gratuito? ¿Qué licencia tiene?
- logrus es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿logrus sigue mantenido?
- Mantenimiento activo. El último commit de logrus fue el 2 oct 2026.
- ¿Para qué puedo usar logrus?
- Añadir logs JSON estructurados a un servicio Go para que Logstash o Splunk los procesen. Migrar un proyecto existente desde el paquete log estándar sin reescribir los puntos de llamada. Enviar entradas de nivel de error a un sistema externo de seguimiento de excepciones mediante un hook. Verificar en pruebas unitarias que se hayan emitido mensajes de log específicos.
- ¿Cómo se instala logrus?
- Instala el módulo Logrus: go get github.com/sirupsen/logrus Impórtalo en tu código Go y registra un mensaje con campos
- ¿Dónde consigo logrus?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/sirupsen/logrus
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Logger universal para TypeScript y JavaScript, con salida legible en terminal, JSON estructurado con los campos al principio, enmascaramiento de secretos y cero dependencias en tiempo de ejecución.
Un visor de logs para la línea de comandos que convierte logs JSON y logfmt en texto legible, con filtros, ordenación y seguimiento en tiempo real.
Una biblioteca de logging estructurado y por niveles para Go, rápida y con una API Logger que no asigna memoria y una API SugaredLogger más flexible.
Una biblioteca de logging sin dependencias para JavaScript y TypeScript, compatible con Deno, Node.js, Bun, navegadores y funciones edge.
API de logging unificada para TypeScript que dirige los logs a Pino, Winston, servicios en la nube, archivos, StatsD y OpenTelemetry mediante una sola interfaz fluida.