Logger.php 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. <?php
  2. /**
  3. * Classe Logger
  4. *
  5. * Gère l'enregistrement des logs dans un fichier.
  6. * Utilisée par AppDebugger pour tracer les erreurs et événements.
  7. */
  8. if (!class_exists('Logger')) {
  9. class Logger {
  10. // Chemin du fichier de log
  11. private static $logFile = __DIR__ . '/../../logs/app.log';
  12. /**
  13. * Enregistre un message dans le fichier de log.
  14. *
  15. * @param string $level Niveau du log (INFO, WARNING, ERROR).
  16. * @param string $message Message à enregistrer.
  17. */
  18. public static function log($level, $message) {
  19. $date = date('Y-m-d H:i:s');
  20. $formattedMessage = "[$date] [$level] $message" . PHP_EOL;
  21. // Vérifie si le dossier des logs existe, sinon le crée
  22. if (!file_exists(dirname(self::$logFile))) {
  23. mkdir(dirname(self::$logFile), 0777, true);
  24. }
  25. // Écrit le message dans le fichier de log
  26. file_put_contents(self::$logFile, $formattedMessage, FILE_APPEND);
  27. }
  28. /**
  29. * Enregistre une erreur.
  30. *
  31. * @param string $message Message d'erreur.
  32. */
  33. public static function error($message) {
  34. self::log('ERROR', $message);
  35. }
  36. /**
  37. * Enregistre un avertissement.
  38. *
  39. * @param string $message Message d'avertissement.
  40. */
  41. public static function warning($message) {
  42. self::log('WARNING', $message);
  43. }
  44. /**
  45. * Enregistre une information.
  46. *
  47. * @param string $message Message d'information.
  48. */
  49. public static function info($message) {
  50. self::log('INFO', $message);
  51. }
  52. }
  53. }