-
Notifications
You must be signed in to change notification settings - Fork 0
Logger
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
| 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. |
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
- 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");- 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);
}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.