Inicio › Tecnología › Registro Estructurado
El registro estructurado (structured logging) es una práctica de generación de logs en la qué cada evento se registra como un conjunto de campos etiquetados con nombre y valor —por ejemplo en formato JSON— en lugar de como una simple línea de texto libre pensada para ser leída por un humano. Esto permite qué herramientas de análisis como Elasticsearch, Loki o cualquier motor de consultas puedan filtrar, agregar y correlacionar logs de forma precisa por campos concretos (usuario, endpoint, duración, código de error), sin depender de expresiones regulares frágiles para extraer esa información de un texto no estructurado. Librerías como structlog en Python, Zap o Zerolog en Go, o Serilog en .NET facilitan adoptar este enfoque desde el propio código de la aplicación.
En vez de escribir el log como una frase suelta del tipo "usuario 42 hizo login a las 10:05", el registro estructurado lo guarda como datos separados y etiquetados: usuario=42, acción=login, hora=10:05. Así, buscar después "todos los logins fallidos del usuario 42" es una consulta directa, en vez de tener qué rebuscar entre miles de frases de texto libre.
Un equipo qué migra sus logs de texto plano a formato JSON estructurado puede después construir en pocos minutos un panel en Grafana qué muestre el tiempo de respuesta medio filtrado por endpoint y por código de estado HTTP, algo qué con logs de texto libre habría requerido expresiones regulares complejas y propensas a romperse con cualquier cambio de formato.
Permite consultas precisas y agregaciones (contar errores por tipo, calcular percentiles de latencia por endpoint) sin depender de parsear texto con expresiones regulares qué se rompen fácilmente si cambia ligeramente el formato del mensaje.
En crudo sí resulta menos legible para un humano, pero prácticamente todas las herramientas de visualización de logs lo formatean de forma legible en pantalla, mientras conservan por debajo la estructura de campos qué permite las consultas avanzadas.
Como mínimo una marca de tiempo, el nivel de severidad, un identificador de correlación de la petición (trace ID) y el nombre del servicio de origen, ya qué son los campos qué permiten reconstruir el recorrido completo de una petición a través de varios sistemas.