Retour au blog
Debugger son application Laravel avec Pail

Qu’est-ce que Pail ?

Pail, c’est peut-être ce que bon nombre d’entre nous utilisera demain pour débugger ses logs ! Encore une innovation du grand Nuno Maduro, qui nous gratifie d’un nouveau package permettant de visionner facilement les logs Laravel directement depuis la ligne de commande.

Contrairement à d’autres outils de suivi de journaux, Pail est conçu pour fonctionner avec n’importe quel driver, y compris Sentry ou Flare. 🔫

La documentation est diposnible sur le site officiel de Laravel.

Installation

Nécessite PHP 8.2+ avec l’extension PCNTL.

Pour commencer, installez Pail dans votre projet à l’aide du gestionnaire de paquets Composer :

composer require laravel/pail

Comment ça s’utilise ?

Pour commencer à suivre les journaux, exécutez la commande artisan pail, avec l’option -v ou -vv suivant la verbosité désirée.

php artisan pail
php artisan pail -v    # Pour une sortie plus verbeuse
php artisan pail -vv   # Pour une sortie très verbeuse (inclut les traces de la pile)

Pour stopper le suivi un CTRL + C fera l’affaire !

Filtrer les logs

Vous pouvez utiliser l’option --filter pour trier les logs en fonction de presque n’importe quel critère, y compris leur stacktrace.

Pour illustrer cela, prenons deux routes qui génèrent délibérément des erreurs de types différents.

Cela peut sembler étrange, mais cela vous permettra de voir comment les filtrer.

Contenu du fichier web.php :

Route::get('/products', fn () => throw new \Exception('You wanted to see products? You fool!'));

Route::get('/orders', fn () => throw new \Exception('You wanted to see orders? You fool!'));

Puis je lance la commande avec son filtre !

php artisan pail --filter="products"

Maintenant, si je visite la route /orders, Pail n’affichera rien ! En revanche, si je visite la route /products, l’exception sera bien consignée en ligne de commande. Sublime. 🪣

Autres options

Sachez que vous pourrez également filtrer vos logs uniquement par message via --message :

php artisan pail --message="Order updated"

Ou par leur niveau avec --level :

php artisan pail --level=critical

Pour afficher uniquement les logs qui ont été déclenchés par un certain utilisateur authentifié, vous pouvez utiliser l’option --user :

php artisan pail --user=5

Conclusion

En résumé, Laravel Pail offre une expérience de gestion des journaux plus fluide avec :

  • Flexibilité pour tous les pilotes de journal
  • Convivialité avec une interface élégante
  • Options de filtrage avancées
  • Suivi des journaux avec ou sans stacktrace

Embarquez avec Pail pour une exploration efficace de vos journaux Laravel ! 🚀