Resumen: Deja de usar var_dump() en tus aplicaciones PHP. Implementa logging contextual para obtener registros estructurados, trazas y mejor diagnóstico.
Este artículo explica por qué el logging contextual es superior, qué herramientas usar y cómo instrumentar Monolog con ejemplos prácticos.
Introducción
var_dump() muestra datos, pero no el contexto ni la intención detrás de un evento. En aplicaciones modernas eso crea ruido y dificulta el diagnóstico.
El objetivo del logging contextual es convertir cada registro en una unidad de información accionable: quién, qué, dónde y bajo qué condiciones.
Prerrequisitos
Asumo que puedes instalar paquetes con Composer. Necesitarás Monolog y acceso a la capa donde se almacenan o envían los logs (archivos, agregadores, etc.).
Desarrollo
Procedimiento
- Crear y configurar un Logger central.
- Añadir handlers y processors que inyecten contexto (ID de correlación, ubicación, introspección).
- Emitir logs estructurados (preferible JSON) con campos relevantes.
Ejemplo mínimo de configuración con Monolog (stream handler y processors):
<?php
use Monolog\Logger;
use Monolog\Handler\StreamHandler;
use Monolog\Processor\UidProcessor;
use Monolog\Processor\IntrospectionProcessor;
// Create logger
$logger = new Logger('app');
$logger->pushHandler(new StreamHandler(__DIR__.'/logs/app.log', Logger::DEBUG));
$logger->pushProcessor(new UidProcessor());
$logger->pushProcessor(new IntrospectionProcessor());
// Contextual log
$logger->info('User action', [
'user_id' => 213,
'action' => 'update_order',
'environment' => getenv('APP_ENV'),
]);
Lenguaje del código: PHP (php)
Con esta configuración obtendrás registros con identificador único y referencia de pila, lo que facilita agrupar eventos y localizar código.
Ejemplos
Ejemplo de log estructurado en JSON (concepto):
{
"timestamp": "2025-10-12T12:34:56Z",
"level": "info",
"message": "User action",
"context": {
"user_id": 213,
"action": "update_order",
"environment": "staging",
"correlation_id": "5f8e3b7a"
}
}
Lenguaje del código: JSON / JSON con comentarios (json)
Comportamientos recomendados a implementar:
- Añadir correlation IDs en cabeceras y logs para trazar flujos distribuidos.
- Emitir campos de negocio (user_id, tenant, region) en cada evento relevante.
- Usar niveles dinámicos y enviar alertas según impacto.
export APP_ENV=staging
tail -f logs/app.log | jq .
Lenguaje del código: Bash (bash)
Checklist
- Eliminar var_dump() y print_r() del código en producción.
- Registrar contexto mínimo: user_id, request_id/correlation_id, environment.
- Enviar logs estructurados a un agregador o almacenarlos en formato JSON.
- Configurar niveles y alertas basadas en impacto.
Conclusión
Pasar de var_dump() a logging contextual reduce ruido, acelera el diagnóstico y permite analizar el comportamiento de la aplicación en producción.
Empieza por instrumentar Monolog, añadir processors relevantes y normalizar la salida en JSON para integrarla con tus herramientas de observabilidad.

Deja un comentario