- #laravel
- #logs
- #package
Laravel Pail: Seguimiento de registros de logs en tiempo real
Escrito por Jhon Achata el 13 de noviembre de 2023
Introducción
A menudo necesitamos revisar los archivos de logs para hacer debug de alguna funcionalidad, para estos casos se creo Laravel Pail, la forma más fácil de hacer seguimiento a los archivos de logs en tiempo real.
Antes de Laravel Pail, se hacia el seguimiento usando el comando tail:
tail -f storage/logs/laravel.log
Con este comando obtenemos los nuevos registros que llegan al archivo de laravel.log
, aunque de una forma nada elegante.
Instalación de Laravel Pail
Antes de seguir con la instalación, debemos tener en cuenta que el paquete tiene ciertos requerimientos:
- PHP 8.2+
- Extensión PCNTL
Una vez cumplidos estos requerimientos, podemos proceder con la instalación con el siguiente comando:
composer require laravel/pail
Usando Pail para hacer seguimiento de los logs
Para usar el paquete Laravel Pail, unicamente debemos ejecutar siguiente comando en nuestra terminal:
El comando también tiene opciones para obtener mas información de los logs
# Muestra más detalles de los logsphp artisan pail -v
# Muestra más detalles y el stack trace de los logsphp artisan pail -vv
Filtrando logs
El paquete Pail incluye también diferentes opciones para filtrar logs, entre estos tenemos:
Filtro por contenido
Este filtro es el más general, ya que hace el filtro por el tipo, archivo, mensaje y el contenido del stack trace.
php artisan pail --filter="QueryException"
Filtro por mensaje
Para filtrar por el mensaje del log, usamos la siguiente opción.
php artisan pail --message="User created"
Filtro por el nivel
También podemos filtrar por el nivel del log.
php artisan pail --level=warning
Filtro por usuario
Por último podemos filtrar por un usuario especifico, con esto solo obtendremos los logs del usuario en particular.
php artisan pail --user=1
Conclusión
Una diferencia muy grande con el comando tail aparte del estilo con el que se muestran los logs, es que con Laravel Pail esta construido para funcionar con cualquier tipo de log driver que tengamos configurado, por ejemplo: Sentry o Flare, ademas de los filtros que nos permiten ver cierta información especifica en particular.
Puedes ver más información en la documentación oficial.