La journalisation : la classe Logger

La classe Logger implémente l'interface ILogger qui définit 5 méthodes :

public function info( string $message );
public function debug( string $message );
public function warn( string $message );
public function error( string $message );
public function write( string $level, string $message );

Il existe 4 niveaux de gravité :

Niveau Constante Description
INFO ILogger::INFO Information détaillée sur le fonctionnement de l'application
DEBUG ILogger::DEBUG Information détaillée, intéressante pour le diagnostic d'un problème
WARN ILogger::WARN Un problème inattendu a été détecté, n'empêchant pas le fonctionnement de l'application.
ERROR ILogger::ERROR Une erreur grave est survenue, empêchant le traitement de la requête. Les exceptions qui donnent lieu à une erreur 500 sont tracées par un message de niveau ERROR.

Seul les événements du niveau défini ou au-dessus sont suivis. Par exemple, si le niveau défini est WARN, seuls les messages de gravité WARN (avertissement) ou ERROR (erreur) sont affichés.

$logger = new Logger( LOG_DIR . 'log.log', ILogger::WARN );
$logger->info( 'User logged in.' ); //Ne sera pas affiché
$logger->warn( 'Login failure.' );
$logger->error( 'An error occured.' );

Un logger est disponible par défaut dans le conteneur :

$logger = IoC::resolve( 'logger' );

Le niveau de gravité est défini dans le fichier de configuration config/config.php :

'log_level' => ILogger::ERROR,