¿Qué es el logging en PHP y para qué sirve?
El logging es el proceso de registrar información sobre el funcionamiento de una aplicación: errores, advertencias, mensajes de depuración y acciones del usuario. En PHP, a diferencia de Python, no hay un logger compatible con PSR integrado "de serie" (aunque existe la función error_log()). Por lo tanto, la mejor solución es utilizar la biblioteca Monolog, el estándar de facto para el logging en proyectos PHP.
¿Para qué registrar?
- Depuración en producción (stack trace de errores)
- Monitoreo de rendimiento
- Auditoría de seguridad (inicios de sesión, cambios de datos)
- Análisis del comportamiento de usuarios
Instalación de Monolog
La instalación se realiza a través de Composer (el equivalente a pip para PHP):
composer require monolog/monologPara funcionar, se requiere PHP 8.0+ y Composer 2.x.
Funciones y capacidades principales
Monolog soporta:
- Canales (Channels) — loggers aislados para diferentes partes de la aplicación (por ejemplo, 'security', 'database')
- Niveles de logging (DEBUG, INFO, WARNING, ERROR, CRITICAL, etc.)
- Handlers — dónde escribir: archivos, bases de datos, Slack, Telegram, email
- Processors — enriquecimiento de mensajes con contexto (IP, hora, sesión)
Ejemplo de código
<?phprequire 'vendor/autoload.php';
use Monolog\\Logger;use Monolog\\Handler\\StreamHandler;use Monolog\\Handler\\TelegramBotHandler;use Monolog\\Processor\\WebProcessor;
// Creamos el canal 'app'$log = new Logger('app');
// Handler para escribir en archivo$log->pushHandler(new StreamHandler(__DIR__.'/logs/app.log', Logger::WARNING));
// Handler para Telegram (opcional)$telegram = new TelegramBotHandler('YOUR_BOT_TOKEN', 'CHAT_ID', Logger::CRITICAL);$log->pushHandler($telegram);
// Processor para añadir IP y User-Agent$log->pushProcessor(new WebProcessor());
// Registramos$log->info('Usuario inició sesión', ['user_id' => 123]);$log->error('Error de base de datos', ['sql' => 'SELECT * FROM users']);Cuándo usarlo
Monolog es obligatorio en los siguientes casos:
- Cualquier proyecto comercial o de código abierto en PHP (Symfony, Laravel usan Monolog por defecto)
- Microservicios y APIs — para el trazado de solicitudes
- Scripts cron y workers — para el seguimiento de la ejecución de tareas
- Al integrarse con servicios externos (logs en Graylog, Sentry, Papertrail)
La biblioteca ha sido probada en miles de proyectos y soporta prácticamente cualquier transporte para logs. Si programas en PHP — comienza con Monolog.
```También en la biblioteca
ORM para Rust: comparación y ejemplos de uso de Diesel, SeaORM y SQLx
Registro en Rust: revisión de las mejores bibliotecas y soluciones para tu proyecto
POCO C++: guía completa con ejemplos prácticos
Configuración de aplicaciones Swift: biblioteca SwiftyConfig
Generación de informes PDF en Swift: PDFKit y UIPrintPageRenderer