Laravel : Visualiser les logs laravel.log avec log-viewer

Mis à jour il y a 3 mois

Un tutoriel d’utilisation du package opcodesio/log-viewer pour lire et afficher dans le navigateur le contenu (logs) du fichier /storage/logs/laravel.log d’un projet Laravel

Wilo Ahadi

Auteur

Wilo A.

Technologies

Laravel
Voir aussi Un tutoriel pour obtenir les propriétés d’un fichier (nom, extension, chemin, taille, date de modification, …) et écrire dans un fichier avec la classe PHP SplFileInfo En savoir plus

Introduction

Le package Log Viewer d'Opcodes ou opcodesio/log-viewer permet de visualiser facilement et rapidement les fichiers .log du répertoire /storage/logs d'un projet Laravel.

Opcodesio/log-viewer fournit les fonctionnalités suivantes :

  • Visualiser les logs (voir Laravel - Logging) sur une page web
  • Rechercher un log
  • Filtrer les logs par niveau (erreur, info, debug, etc.)
  • Télécharger et supprimer les fichiers .log
  • ...

Nous voulons voir dans ce tutoriel comment afficher le contenu du fichier storage/logs/laravel.log et d'autres fichiers .log dans le navigateur en utilisant le package Laravel opcodesio/log-viewer.

Au moment de la rédaction de ce post, j'utilise la version 9 de Laravel. Log Viewer requiert Laravel 8+ et PHP 8.0+

Installer opcodesio/log-viewer

Pour installer le package opcodesio/log-viewer, on exécute la commande composer suivante :

composer require opcodesio/log-viewer

Cette commande télécharge (importe) opcodesio/log-viewer dans le répertoire /vendor.

Utiliser opcodesio/log-viewer

Une fois le package opcodesio/log-viewer téléchargé via composer, nous pouvons visualiser les fichiers /storage/logs/*.log et leurs contenu dans le navigateur en accédant à l'URL /log-viewer de l'application :

Fichier laravel.log affiché avec opcodesio/log-viewer

Il suffit ensuite de cliquer sur un fichier .log pour afficher son contenu puis sur un log pour afficher les details.

Configurer opcodesio/log-viewer

Le package opcodesio/log-viewer nous offre la possibilité de modifier les paramètres par défaut tels que l'URL /log-viewer où consulter les logs, utiliser les middlewares pour protéger l'URL /log-viewer, ...

Pour ce faire, il faut publier le fichier de configuration en exécutant la commande Artisan suivante :

php artisan vendor:publish --tag="log-viewer-config"

Cette commande copie le fichier /vendor/opcodesio/log-viewer/config/log-viewer.php vers /config/log-viewer.php où nous pouvons éditer les paramètres :

<?php

return [

    // L'URL où consulter les logs
    'route_path' => 'log-viewer',

    // L'URL pour retourner vers une autre adresse de l'application
    'back_to_system_url' => config('app.url', null),

    // Le texte à afficher pour l'URL de retour vers une autre adresse de l'application
    'back_to_system_label' => null, // "Back to {{ app.name }}" par défaut

    // Les middlewares pour la route "/log-viewer"
    'middleware' => ['web'],

    // Les types de fichier que Log Viewer peut lire
    'include_files' => ['*.log'],

    // Les fichiers à exclure
    'exclude_files' => [
        //'my_secret.log'
    ],

    /* 
    Si l'utilisateur active le paramètre "Shorter stack traces" dans l’interface web, les logs contenant l'une de ces chaînes seront exclues pour les courts détails 
    */
    'shorter_stack_trace_excludes' => [
        '/vendor/symfony/',
        '/vendor/laravel/framework/',
        '/vendor/barryvdh/laravel-debugbar/',
    ],
];

Si nous voulons par exemple protéger l'URL /log-viewer avec le middleware "auth" (authentification), nous devons l'ajouter au tableau middleware :

'middleware' => [ 'web', 'auth' ]

Packages alternatifs

Il existe d'autres packages Laravel qui permettent de visualiser les fichiers *.log, notamment :

Portez-vous bien ! 😉

Cette publication vous a plu ?
Partagez-la avec vos ami(e)s sur les réseaux sociaux.

Wilo Ahadi

Wilo Ahadi, l'auteur

Passionné de l'informatique, je suis spécialiste en techniques des systèmes et réseaux, développeur web et mobile, infographiste et designer, ... J'aime partager mon expérience en formant sur la plateforme Akili School

Voir profil

Commentaires