Commit version 24.12.13800
This commit is contained in:
61
libs/Nette/Bridges/Psr/TracyToPsrLoggerAdapter.php
Normal file
61
libs/Nette/Bridges/Psr/TracyToPsrLoggerAdapter.php
Normal file
@ -0,0 +1,61 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* This file is part of the Tracy (https://tracy.nette.org)
|
||||
* Copyright (c) 2004 David Grudl (https://davidgrudl.com)
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Tracy\Bridges\Psr;
|
||||
|
||||
use Psr;
|
||||
use Tracy;
|
||||
|
||||
|
||||
/**
|
||||
* Tracy\ILogger to Psr\Log\LoggerInterface adapter.
|
||||
*/
|
||||
class TracyToPsrLoggerAdapter extends Psr\Log\AbstractLogger
|
||||
{
|
||||
/** PSR-3 log level to Tracy logger level mapping */
|
||||
private const LevelMap = [
|
||||
Psr\Log\LogLevel::EMERGENCY => 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);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user