Hostinger

Les logs dans Symfony

Qu’est-ce qu’un log ?

Un log est un message enregistré par votre application pour garder une trace d’un événement.

Ces messages sont stockés dans des fichiers et peuvent indiquer une ne information utile, un avertissement ou une erreur critique.

Les logs sont indispensables pour comprendre le comportement de votre application et déboguer les problèmes.

Où se trouvent les logs dans Symfony ?

Symfony enregistre automatiquement ses logs dans le dossier suivant :

var/log/

À l’intérieur, vous trouverez deux fichiers :

  • dev.log → pour les messages du mode développement (APP_ENV=dev)
  • prod.log → pour le mode production (APP_ENV=prod)

Logs et la barre Profiler

Vous pouvez également consulter les logs directement dans la barre Profiler de Symfony (en bas de la page, en mode développement).

Les logs dans la barre profiler

En cliquant sur le bouton des logs, vous obtiendrez plus de détails :

Les détails des logs grâce dans la barre Profiler

Le service Logger

Symfony intègre un système de logs grâce à un composant interne.

Ce composant fournit un service appelé logger, que vous pouvez injecter dans vos contrôleurs par exemple. Cela vous permet d’enregistrer des messages personnalisés dans vos fichiers de logs :

use Psr\Log\LoggerInterface;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;

class ExempleController
{
    #[Route('/log-test', name: 'app_log_test')]
    public function index(LoggerInterface $logger): Response
    {
        $logger->info('Page de test des logs ouverte.');
        $logger->warning('Un avertissement fictif.');
        $logger->error('Une erreur simulée.');

        return new Response('Logs écrits dans var/log/dev.log !');
    }
}

Explication :

  • info() → pour enregistrer une information générale
  • warning() → pour signaler un comportement anormal, mais non bloquant
  • warning() → error() → pour signaler une erreur importante