1<?php 2 3namespace AuthSSOCas; 4 5use Psr\Log\AbstractLogger; 6 7class SimpleFileLogger extends AbstractLogger 8{ 9 private string $file; 10 11 public function __construct(string $file) 12 { 13 $this->file = $file; 14 } 15 16 public function log($level, $message, array $context = []): void 17 { 18 $line = sprintf( 19 "[%s] %s: %s\n", 20 date('Y-m-d H:i:s'), 21 strtoupper($level), 22 $this->interpolate($message, $context) 23 ); 24 file_put_contents($this->file, $line, FILE_APPEND); 25 } 26 27 private function interpolate(string $message, array $context): string 28 { 29 foreach ($context as $key => $val) { 30 $message = str_replace("{{$key}}", $val, $message); 31 } 32 return $message; 33 } 34} 35