Tracy\ILogger::CRITICAL, Psr\Log\LogLevel::ALERT => Tracy\ILogger::CRITICAL, Psr\Log\LogLevel::CRITICAL => Tracy\ILogger::CRITICAL, Psr\Log\LogLevel::ERROR => Tracy\ILogger::ERROR, Psr\Log\LogLevel::WARNING => Tracy\ILogger::WARNING, Psr\Log\LogLevel::NOTICE => Tracy\ILogger::WARNING, Psr\Log\LogLevel::INFO => Tracy\ILogger::INFO, Psr\Log\LogLevel::DEBUG => Tracy\ILogger::DEBUG, ]; /** @var Tracy\ILogger */ private $tracyLogger; public function __construct(Tracy\ILogger $tracyLogger) { $this->tracyLogger = $tracyLogger; } public function log($level, $message, array $context = []): void { $level = self::LevelMap[$level] ?? Tracy\ILogger::ERROR; if (isset($context['exception']) && $context['exception'] instanceof \Throwable) { $this->tracyLogger->log($context['exception'], $level); unset($context['exception']); } if ($context) { $message = [ 'message' => $message, 'context' => $context, ]; } $this->tracyLogger->log($message, $level); } }