Aller au contenu principal
Version: v1

Logger

L'interface LoggerInterface est une interface standard définie par le PSR-3 (PHP Standards Recommendation) qui fournit une abstraction pour l'enregistrement des messages de journalisation dans CLIENTXCMS. Les messages sont le plus souvent sauvegardé dans la base de données en utilisant l'implémentation

Méthodes de l'interface

L'interface Psr\Log\LoggerInterface définit plusieurs méthodes pour l'enregistrement des messages de journalisation. Voici les méthodes principales :

  • emergency(string $message, array $context = []) : Enregistre un message d'urgence. Il s'agit d'une situation critique nécessitant une action immédiate.
  • alert(string $message, array $context = []) : Enregistre un message d'alerte. Il s'agit d'une condition d'erreur critique qui nécessite une intervention.
  • critical(string $message, array $context = []) : Enregistre un message critique. Il s'agit d'une condition d'erreur critique.
  • error(string $message, array $context = []) : Enregistre un message d'erreur. Il s'agit d'une condition d'erreur.
  • warning(string $message, array $context = []) : Enregistre un message d'avertissement. Il s'agit d'une condition potentiellement dangereuse.
  • notice(string $message, array $context = []) : Enregistre un message de notification. Il s'agit d'une condition normale nécessitant une attention.
  • info(string $message, array $context = []) : Enregistre un message informatif. Il s'agit d'une information générale.
  • debug(string $message, array $context = []) : Enregistre un message de débogage. Il s'agit d'une information de débogage détaillée.

Chaque méthode prend en paramètre le message à enregistrer sous forme de chaîne de caractères, ainsi qu'un tableau optionnel $context contenant des données supplémentaires à associer au message.

Configuration de l'implémentation dans le container

Dans un environnement utilisant un conteneur d'injection de dépendances, il est possible de configurer l'implémentation concrète de la LoggerInterface en y ajoutant une entrée correspondante dans le conteneur.

<?php
// src/Example/config.php
use App\Example\Logger\CustomLogger;

return [
// Autres définitions...

Psr\Log\LoggerInterface::class => DI\get(CustomLogger::class),
];

Exemple d'utilisation dans une classe d'action

Voici un exemple d'utilisation de la LoggerInterface dans une classe d'action fictive qui enregistre une information :

<?php
// src/Example/Actions/ExampleAction.php
namespace App\Example\Actions\ExampleAction;

use Psr\Log\LoggerInterface;
use ClientX\Actions\Action;
class ExampleAction extends Action
{

public function __construct(LoggerInterface $logger)
{
$this->logger = $logger;
}

public function __invoke()
{
// ... Logique de l'action ...

$this->logger->info('L\'action a été exécutée avec succès.');

// ... Suite de la logique de l'action ...
}
}

Dans cet exemple, la classe ExampleAction injecte la Psr\Log\LoggerInterface via son constructeur. Lors de l'exécution de la méthode __invoke(), elle utilise la méthode info() de la LoggerInterface pour enregistrer un message informatif dans les journaux.

N'oubliez pas d'adapter le code en fonction de votre propre implémentation de la LoggerInterface et de la configuration de votre conteneur d'injection de dépendances.

Notez que l'exemple utilise la méthode info(), mais vous pouvez utiliser n'importe quelle autre méthode de la LoggerInterface en fonction du niveau de gravité approprié pour le message que vous souhaitez enregistrer.