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.
rs/zerolog
Un logger JSON para Go con cero asignaciones, API encadenable, logging por niveles y con muestreo, y salida opcional en CBOR.
- Estrellas
- 12,519
- Forks
- 657
- Issues abiertos
- 166
- Último commit
- hace 10 días
¿Qué es?
Zerolog es una biblioteca de logging estructurado para Go que escribe eventos en JSON o en CBOR cuando se compila con una etiqueta. Los eventos se construyen mediante una API encadenable que añade campos clave-valor con tipos definidos, sin reflexión, lo que permite mantener las asignaciones en cero en las rutas habituales de sus benchmarks.
La biblioteca admite siete niveles, de trace a panic, control global y por logger del nivel, muestreo de logs y hooks que pueden añadir campos a cada evento. La integración con context permite asociar un logger a un context.Context y recuperarlo más tarde; el paquete hlog ofrece helpers para handlers de net/http. También incluye un slog.Handler para que el código que usa la API estándar log/slog pueda dirigir sus registros a través de zerolog.
Para el desarrollo local, zerolog.ConsoleWriter convierte los eventos en líneas con colores y fáciles de leer, aunque es más lento que la ruta JSON y no está pensado para producción. Las trazas de pila de los errores están disponibles mediante el subpaquete pkgerrors.
Funciones clave
- 01API encadenable que escribe JSON o CBOR sin reflexión ni asignaciones en las rutas habituales
- 02Siete niveles de logging con control global del nivel
- 03Muestreo de logs, incluidos los samplers burst y basic
- 04Hooks para añadir campos a cada evento
- 05Integración con context.Context, handlers de net/http y log/slog
- 06ConsoleWriter para obtener una salida local con colores
Casos de uso
- Registrar logs de servicios Go de alto rendimiento donde importa el costo de las asignaciones
- Emitir logs JSON estructurados para que los ingieran sistemas de agregación de logs
- Añadir campos asociados a cada solicitud a los logs de servidores HTTP
- Conectar código existente basado en slog con un backend JSON
Inicio rápido
- 1
Instala el módulo
go get -u github.com/rs/zerolog/log - 2
Importa el registrador global y registra un mensaje
Antes de usarlo
- Está enfocado en la salida JSON estructurada (o CBOR); para obtener una salida adaptada a la consola, se necesita ConsoleWriter, que es menos eficiente.
En colecciones
Temas
Preguntas frecuentes
- ¿Qué es zerolog?
- Un logger JSON para Go con cero asignaciones, API encadenable, logging por niveles y con muestreo, y salida opcional en CBOR. Zerolog es una biblioteca de logging estructurado para Go que escribe eventos en JSON o en CBOR cuando se compila con una etiqueta. Los eventos se construyen mediante una API encadenable que añade campos clave-valor con tipos definidos, sin reflexión, lo que permite mantener las asignaciones en cero en las rutas habituales de sus benchmarks.
- ¿zerolog es gratuito? ¿Qué licencia tiene?
- zerolog es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿zerolog sigue mantenido?
- Mantenimiento activo. El último commit de zerolog fue el 14 oct 2026.
- ¿Para qué puedo usar zerolog?
- Registrar logs de servicios Go de alto rendimiento donde importa el costo de las asignaciones Emitir logs JSON estructurados para que los ingieran sistemas de agregación de logs Añadir campos asociados a cada solicitud a los logs de servidores HTTP Conectar código existente basado en slog con un backend JSON
- ¿Cómo se instala zerolog?
- Instala el módulo: go get -u github.com/rs/zerolog/log Importa el registrador global y registra un mensaje
- ¿Dónde consigo zerolog?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/rs/zerolog
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Logger estructurado y compatible a nivel de API con Go, con formatters y hooks extensibles, actualmente en modo de mantenimiento.
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.
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.
Biblioteca de logging para Python que sustituye la configuración estándar por un único logger, rotación de archivos, salida en color y logs estructurados.