Un logger JSON para Go con cero asignaciones, API encadenable, logging por niveles y con muestreo, y salida opcional en CBOR.
uber-go/zap
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.
- Estrellas
- 24,678
- Forks
- 1,575
- Issues abiertos
- 201
- Último commit
- el mes pasado
¿Qué es?
Zap es una biblioteca de logging para Go que escribe entradas estructuradas con campos clave-valor tipados y admite niveles de log. Está pensada para aplicaciones que registran logs en rutas de código críticas para el rendimiento, donde la serialización basada en reflexión y el formato de cadenas añadirían un costo considerable de CPU y asignaciones de memoria.
Zap ofrece dos API. Logger utiliza valores Field con tipos estrictos y evita asignaciones en la mayoría de las llamadas, mientras que SugaredLogger acepta pares clave-valor con tipos menos estrictos y formato al estilo printf, a cambio de un costo moderado de rendimiento. Ambas se basan en un encoder JSON que no usa reflexión. La suite de benchmarks del propio proyecto lo compara con paquetes como zerolog, slog, logrus y otros proyectos similares a zap.
La biblioteca está documentada en pkg.go.dev y su API se considera estable; no se prevén cambios incompatibles en la serie 1.x. Requiere las dos versiones minor más recientes de Go.
Funciones clave
- 01Logging estructurado con valores Field con tipos estrictos.
- 02SugaredLogger con API de pares clave-valor con tipos menos estrictos y formato al estilo printf.
- 03Encoder JSON sin reflexión y sin asignaciones de memoria.
- 04Logging por niveles con ajustes predefinidos para producción y desarrollo.
Casos de uso
- Registrar logs en servicios Go sensibles a la latencia, donde importa reducir las asignaciones de memoria.
- Emitir logs JSON que los sistemas de agregación de logs puedan analizar.
- Añadir campos de contexto estructurados a las solicitudes en servicios backend.
Inicio rápido
- 1
Instala la biblioteca zap con go get
go get -u go.uber.org/zap - 2
Crea un logger de producción y registra mensajes con SugaredLogger
Antes de usarlo
- Solo admite las dos versiones menores más recientes de Go.
En colecciones
Temas
Preguntas frecuentes
- ¿Qué es zap?
- 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. Zap es una biblioteca de logging para Go que escribe entradas estructuradas con campos clave-valor tipados y admite niveles de log. Está pensada para aplicaciones que registran logs en rutas de código críticas para el rendimiento, donde la serialización basada en reflexión y el formato de cadenas añadirían un costo considerable de CPU y asignaciones de memoria.
- ¿zap es gratuito? ¿Qué licencia tiene?
- zap es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿zap sigue mantenido?
- Actualizado en los últimos 6 meses. El último commit de zap fue el 16 sept 2026.
- ¿Para qué puedo usar zap?
- Registrar logs en servicios Go sensibles a la latencia, donde importa reducir las asignaciones de memoria. Emitir logs JSON que los sistemas de agregación de logs puedan analizar. Añadir campos de contexto estructurados a las solicitudes en servicios backend.
- ¿Cómo se instala zap?
- Instala la biblioteca zap con go get: go get -u go.uber.org/zap Crea un logger de producción y registra mensajes con SugaredLogger
- ¿Dónde consigo zap?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/uber-go/zap
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.
Logger estructurado y compatible a nivel de API con Go, con formatters y hooks extensibles, actualmente en modo de mantenimiento.
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.
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.