Journalisation pour PHP (Monolog)

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Qu'est-ce que la journalisation en PHP et pourquoi en a-t-on besoin ?

La journalisation est le processus d'enregistrement d'informations sur le fonctionnement d'une application : erreurs, avertissements, messages de débogage et actions des utilisateurs. En PHP, contrairement à Python, il n'existe pas de logger compatible PSR intégré "prêt à l'emploi" (bien qu'il existe la fonction error_log()). Par conséquent, la meilleure solution est d'utiliser la bibliothèque Monolog — le standard de facto pour la journalisation dans les projets PHP.

Pourquoi journaliser ?

  • Débogage en production (stack trace des erreurs)
  • Surveillance des performances
  • Audit de sécurité (connexions, modifications de données)
  • Analyse du comportement des utilisateurs

Installation de Monolog

L'installation se fait via Composer (l'équivalent de pip pour PHP) :

composer require monolog/monolog

Pour fonctionner, PHP 8.0+ et Composer 2.x sont requis.

Fonctionnalités et possibilités principales

Monolog prend en charge :

  • Canaux (Channels) — des loggers isolés pour différentes parties de l'application (par exemple, 'security', 'database')
  • Niveaux de journalisation (DEBUG, INFO, WARNING, ERROR, CRITICAL, etc.)
  • Handlers — où écrire : fichiers, bases de données, Slack, Telegram, email
  • Processeurs (Processors) — enrichissement des messages avec du contexte (IP, heure, session)

Exemple de code

<?phprequire 'vendor/autoload.php';

use Monolog\\Logger;use Monolog\\Handler\\StreamHandler;use Monolog\\Handler\\TelegramBotHandler;use Monolog\\Processor\\WebProcessor;

// Création du canal 'app'$log = new Logger('app');

// Handler pour l'écriture dans un fichier$log->pushHandler(new StreamHandler(__DIR__.'/logs/app.log', Logger::WARNING));

// Handler pour Telegram (optionnel)$telegram = new TelegramBotHandler('YOUR_BOT_TOKEN', 'CHAT_ID', Logger::CRITICAL);$log->pushHandler($telegram);

// Processeur pour ajouter l'IP et le User-Agent$log->pushProcessor(new WebProcessor());

// Journalisation$log->info('Utilisateur connecté', ['user_id' => 123]);$log->error('Erreur de base de données', ['sql' => 'SELECT * FROM users']);

Quand l'utiliser

Monolog est obligatoire dans les cas suivants :

  • Tout projet PHP commercial ou open-source (Symfony, Laravel utilisent Monolog par défaut)
  • Microservices et API — pour le traçage des requêtes
  • Scripts cron et workers — pour le suivi de l'exécution des tâches
  • Lors de l'intégration avec des services externes (logs dans Graylog, Sentry, Papertrail)

La bibliothèque a été testée dans des milliers de projets et prend en charge pratiquement n'importe quel transport pour les logs. Si vous développez en PHP — commencez par Monolog.

Recommendations