# Log des informations
Un système de log est proposé par la plateforme. Ce système est une classe PHP qui repose sur la bibliothèque monolog et est conforme à la norme PSR-3.
Cette classe Anakeen\LogManager
permet simplement d'enregistrer des messages sur le système de log préconfiguré de la
plateforme.
# Paramétrage du niveau de log
La configuration par défaut permet de logguer sur le système syslog
du serveur tous les messages de priorité
supérieure ou égale au paramètre Core::CORE_LOGLEVEL
.
Ce paramètre indique la priorité minimum à logguer. Les valeurs possibles sont les suivantes (données dans l'ordre des priorités)
EMERGENCY
ALERT
CRITICAL
ERROR
WARNING
NOTICE
INFO
DEBUG
Ce paramètre est par défaut à NOTICE
. Il loggue par conséquent tous les messages sauf DEBUG
et INFO
.
La configuration par défaut loggue aussi les messages ERROR
(et supérieurs) sur le système de log d'erreur de php
(error_log
).
# Utilisation du système de log
Pour envoyer un message au système de log, il suffit d'utiliser les méthodes statiques de la classe
Anakeen\LogManager
. Une méthode par priorité est définie.
Exemple :
\Anakeen\LogManager::info("Hello world");
\Anakeen\LogManager::error("Hum, a problem occurs");
# Paramétrage des sorties de log
# Modifier la sortie des flux par défaut
Les messages sont affichés avec le pattern suivant :
%channel%[%level_name%]{%user%}: %message% %context% %extra%
Cela affiche des messages de cette forme :
Anakeen Platform[INFO]{admin}: Ajout Doe Jane dans dossier Utilisateurs [] []
Anakeen Platform[INFO]{admin}: Test informatif [] []
La méthode Anakeen\LogManager::setFormater()
permet de modifier cette sortie
Exemple :
\Anakeen\LogManager::setFormater(new \Monolog\Formatter\LineFormatter("[%user%]-[%level_name%] => %message%"));
Cela fournira la sortie suivante :
[admin]-[INFO] => Ajout Doe Jane dans dossier Utilisateurs
[admin]-[INFO] => Test informatif [] []
# Ajout d'un nouveau flux (stream) de log
Par défaut la plateforme est configurée pour utiliser le système syslog
. Il est possible d'ajouter votre propre
handler en utilisant la méthode Anakeen\LogManager::pushHandler()
.
De nombreux handlers sont disponibles grâce à monolog.
Exemple : ajouter un handler qui écrit dans un simple fichier.
\Anakeen\LogManager::pushHandler(
new \Monolog\Handler\StreamHandler("/var/log/special", \Anakeen\LogManager::getLogLevel()) // Conformément au paramètre CORE_LOGLEVEL
);
# Aller plus loin dans la configuration
La méthode Anakeen\LogManager::getLogger()
fournit l'objet Monolog\Logger
. Il est possible de reconfigurer
totalement l'objet de log pour l'adapter à votre besoin.