Skip to content
Gérits Aurélien edited this page Feb 13, 2026 · 3 revisions

Le Logger est le système central de journalisation de Magepattern. Il permet de tracer les erreurs, les avertissements et les informations de débogage dans des fichiers organisés. Il supporte nativement la capture des exceptions (Throwable) et peut générer des rapports de performance détaillés incluant les backtraces.

Namespace : Magepattern\Component\Debug\Logger

Liste des méthodes

Méthode Paramètres Retour Description
getInstance() - self Accès au Singleton du Logger.
log() string|Throwable $entry, ... void Enregistre une entrée. Détecte auto le fichier source.
setLogLevel() int $level void Définit le seuil de sévérité (DEBUG à ERROR).
setLogDetails() string $level void Définit la précision (low, medium, high, full).
setLogPath() string $path void Modifie le répertoire de stockage des logs.
removeLog() string $folder, $file bool Supprime un fichier de log spécifique.

Configuration des Niveaux de Détails

Le Logger s'adapte à votre environnement (Production vs Développement) :

Niveau Description
low / medium Date, niveau de log et message (Idéal pour la production).
high Ajoute le fichier source, la ligne et le calcul du temps écoulé (Profiling).
full Ajoute la pile d'exécution complète (Backtrace).

Usage de base

  1. Journalisation simple Par défaut, le Logger crée un dossier php/ et un fichier nommé selon le script appelant.
use Magepattern\Component\Debug\Logger;

// Log une simple information
Logger::getInstance()->log("L'utilisateur a mis à jour son profil.");

// Log un avertissement dans un dossier spécifique
Logger::getInstance()->log("Tentative de connexion échouée", "security", "auth_events");
  1. Capture d'Exception Vous pouvez passer directement un objet Exception ou Error. Le Logger extraira automatiquement le message.
try {
    // Code risqué
} catch (\Throwable $e) {
    Logger::getInstance()->log($e, "critical", "database_errors", Logger::LOG_YEAR, Logger::LOG_LEVEL_ERROR);
}

Fonctionnalités Avancées

Archivage Intelligent Grâce aux constantes LOG_MONTH et LOG_YEAR, les fichiers sont automatiquement classés dans des sous-dossiers par année :

logs/php/2026/202602_index.log (Mensuel)

logs/php/2026/2026_index.log (Annuel)

Profiling de Performance En mode high, le Logger calcule le temps (en ms) entre deux logs consécutifs. C'est idéal pour identifier quel bloc de code ralentit votre application.

Filtrage par Niveau En production, vous pouvez ignorer les logs de niveau DEBUG pour économiser de l'espace disque :

Logger::getInstance()->setLogLevel(Logger::LOG_LEVEL_WARNING);
// Seuls les logs WARNING et ERROR seront écrits.

Clone this wiki locally