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).
En cliquant sur le bouton des logs, vous obtiendrez plus de détails :
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
