mirror of
https://github.com/tips-of-mine/gestion-certificats2.git
synced 2025-07-02 06:58:42 +02:00
49 lines
1.5 KiB
PHP
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);
|
|
}
|
|
}
|