0Pricing
Go Academy · Lección

Por qué usar logs estructurados

Registre datos legibles por máquinas

Por qué usar logs estructurados es una lección gratuita de Go Academy en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Go Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Go Academy incluye 4 lecciones en total.

Logs que las máquinas pueden leer

Los logs tradicionales son cadenas de texto de formato libre: "user 42 logged in from 1.2.3.4". Son fáciles de leer para las personas, pero difíciles de consultar para las máquinas. El logging estructurado emite pares clave-valor para que los agregadores de logs puedan filtrar y agregar datos de forma fiable.

El problema de los logs de texto

Analizar texto libre es frágil:

  • Los formatos cambian con el tiempo
  • Las expresiones regulares fallan en casos límite
  • No puede preguntar fácilmente «todos los eventos en los que userID=42»

Los logs estructurados convierten cada campo en un atributo consultable de primera clase.

slog está en la biblioteca estándar

Desde Go 1.21, el logging estructurado forma parte del paquete de la biblioteca estándar log/slog. No se necesita ninguna dependencia externa.

import "log/slog"

Su primer log estructurado

La llamada más sencilla registra un mensaje junto con atributos clave-valor:

package main

import "log/slog"

func main() {
    slog.Info("user logged in", "userID", 42, "ip", "1.2.3.4")
}

Cómo leer la salida

El handler predeterminado muestra algo parecido a esto:

  • 2009/11/10 23:00:00 INFO user logged in userID=42 ip=1.2.3.4

Cada atributo es un par key=value independiente, listo para que una máquina lo analice.

Niveles integrados

slog incluye cuatro niveles: Debug, Info, Warn y Error. Cada uno recibe un mensaje y atributos clave-valor alternos.

slog.Warn("disk almost full", "freePct", 5)
slog.Error("db connection failed", "attempt", 3)

Pares clave-valor

Los atributos se pasan como argumentos alternos: clave, valor, clave, valor. Un argumento aislado en una posición impar se registra con un marcador especial !BADKEY, así que manténgalos emparejados.

slog.Info("order placed", "orderID", 1001, "total", 49.99)

JSON en producción

En producción normalmente se emite JSON para que los sistemas que recopilan logs (Loki, ELK, CloudWatch) puedan indexar los campos automáticamente. slog incluye un handler JSON diseñado exactamente para esto, que se explica en la siguiente lección.

Comparación con el paquete log antiguo

El paquete clásico log solo imprime cadenas. slog mantiene una experiencia familiar, pero añade estructura, niveles y handlers intercambiables sin tener que cambiar todo el código de una vez.

Cuándo resulta útil la estructura

El logging estructurado resulta especialmente útil cuando:

  • Centraliza logs de muchos servicios
  • Construye paneles y alertas basados en campos
  • Necesita correlacionar solicitudes mediante un ID

Ejecutable: salida estructurada

Ejecute esto para ver los atributos estructurados en la salida predeterminada.

package main

import "log/slog"

func main() {
    slog.Info("request handled",
        "method", "GET",
        "path", "/health",
        "status", 200,
        "ms", 12,
    )
}

Comprobación rápida

Compruebe lo que ha aprendido sobre el logging estructurado.

Resumen

Ha aprendido por qué son importantes los logs estructurados:

  • Los atributos clave-valor se pueden consultar desde una máquina
  • log/slog forma parte de la biblioteca estándar (Go 1.21 o posterior)
  • Niveles integrados: Debug, Info, Warn y Error
  • Pase los atributos como pares alternos de clave y valor

Siguiente: elegir entre handlers de texto y JSON.

Preguntas frecuentes

¿La lección «Por qué usar logs estructurados» es gratis?

Sí — el texto completo de «Por qué usar logs estructurados» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Go Academy, actualiza a CoddyKit PRO. El curso de Go Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Por qué usar logs estructurados»?

Registre datos legibles por máquinas Practicas Go Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Go Academy?

No se requiere experiencia previa. Go Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.

¿Cuánto tiempo toma la lección «Por qué usar logs estructurados»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Go Academy?

Sí. Cada lección de Go Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Por qué usar logs estructurados
  2. Handlers de slog
  3. Niveles y atributos de logs
  4. Handlers personalizados
← Volver a Go Academy