Files
gestion-certificats2/app/src/Services/LogService.php
2025-06-14 19:03:54 +02:00

49 lines
1.5 KiB
PHP

<?php
namespace App\Services;
/**
* Service pour journaliser les actions de l'application dans un fichier.
*/
class LogService
{
private $logFile; // Chemin complet du fichier de log
/**
* Constructeur du service de journalisation.
*
* @param string $logFile Chemin complet du fichier de log.
*/
public function __construct($logFile)
{
$this->logFile = $logFile;
}
/**
* Enregistre un message dans le fichier de log.
*
* @param string $level Niveau de gravité du log (ex: 'info', 'warning', 'error').
* @param string $message Le message à enregistrer.
* @param int|null $userId L'ID de l'utilisateur si l'action est liée à un utilisateur.
* @param string|null $ipAddress L'adresse IP d'où provient l'action.
*/
public function log($level, $message, $userId = null, $ipAddress = null)
{
$timestamp = date('Y-m-d H:i:s'); // Date et heure actuelle
$logEntry = sprintf("[%s] [%s] ", $timestamp, strtoupper($level)); // Format de base du log
// Ajoute l'ID utilisateur si fourni
if ($userId !== null) {
$logEntry .= "[User: $userId] ";
}
// Ajoute l'adresse IP si fournie
if ($ipAddress !== null) {
$logEntry .= "[IP: $ipAddress] ";
}
$logEntry .= "$message\n"; // Ajoute le message et un saut de ligne
// Écrit le log dans le fichier, en ajoutant au contenu existant
file_put_contents($this->logFile, $logEntry, FILE_APPEND);
}
}