Estrategias de Logging
Prácticas para implementar logging efectivo en sistemas distribuidos: structured logging, niveles, correlación y agregación centralizada.
¿Qué es?
El logging efectivo en sistemas distribuidos va más allá de console.log. Requiere estructura, correlación entre servicios, niveles apropiados y agregación centralizada para ser útil en debugging y auditoría.
Structured Logging
Logs en formato JSON en lugar de texto plano:
{"level":"info","msg":"Order created","orderId":"123","userId":"456","traceId":"abc","timestamp":"2026-03-16T10:00:00Z"}Beneficios: búsqueda eficiente, filtrado por campos, parsing automático.
Niveles
| Nivel | Uso |
|---|---|
| DEBUG | Detalle para desarrollo |
| INFO | Eventos normales de negocio |
| WARN | Situaciones inesperadas no críticas |
| ERROR | Fallos que requieren atención |
Correlación
Incluir traceId y requestId en cada log para rastrear una request a través de múltiples servicios.
Herramientas de agregación
- ELK Stack (Elasticsearch, Logstash, Kibana)
- Grafana Loki
- AWS CloudWatch Logs
- Datadog Logs
Anti-patrones
- Logging excesivo: loguear todo genera ruido y costos de almacenamiento — loguear lo que ayuda a diagnosticar
- Logs sin contexto: un mensaje como «error occurred» sin request ID, usuario o stack trace es inútil
- Datos sensibles en logs: PII, tokens o contraseñas que terminan en sistemas de agregación
¿Por qué importa?
Los logs son la primera herramienta de diagnóstico cuando algo falla. Logs estructurados, con niveles apropiados y correlación entre servicios, convierten la depuración de horas en minutos. Logs desordenados son ruido que oculta la señal.
Referencias
- Structured Logging — structlog, 2024. Biblioteca Python de referencia para logging estructurado.
- OpenTelemetry Logs — OpenTelemetry, 2024. Estándar abierto para logs.
- Elastic Common Schema — Elastic, 2024. Esquema estándar para logs estructurados.