Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- declare(strict_types=1);
- namespace app\services\Log;
- use Monolog\Handler\StreamHandler;
- use Monolog\Logger;
- use PHPUnit\Event\Code\Throwable;
- use Psr\Http\Message\ResponseInterface;
- use Psr\Log\LogLevel;
- use RuntimeException;
- class LoggerService
- {
- private $loggers = [];
- private function createLogger(LogChannels $channel)
- {
- return $channel->createMonologLogger();
- }
- public function getLogger($channel)
- {
- if (!isset($this->loggers[$channel->value])) {
- $this->loggers[$channel->value] = $this->createLogger($channel);
- }
- return $this->loggers[$channel->value];
- }
- public function log($level, LogChannels $channel, $message, array $context = [], ?\Throwable $e = null, ?ResponseInterface $response = null)
- {
- $logger = $this->getLogger($channel);
- if($e)
- {
- $context['exception'] = $e;
- }
- if($response)
- {
- $context['response'] = $response;
- }
- $logger->log($level, $message, $context);
- }
- // Shortcut methods for each log level
- public function info(LogChannels $channel, $message, array $context = [], ?\Throwable $e = null, ?ResponseInterface $response = null)
- {
- $this->log(LogLevel::INFO, $channel, $message, $context, $e, $response);
- }
- public function debug(LogChannels $channel, $message, array $context = [], ?\Throwable $e = null, ?ResponseInterface $response = null)
- {
- $this->log(LogLevel::DEBUG, $channel, $message, $context, $e, $response);
- }
- public function error(LogChannels $channel, $message, array $context = [], ?\Throwable $e = null, ?ResponseInterface $response = null)
- {
- $this->log(LogLevel::ERROR, $channel, $message, $context, $e, $response);
- }
- public function warning(LogChannels $channel, $message, array $context = [], ?\Throwable $e = null, ?ResponseInterface $response = null)
- {
- $this->log(LogLevel::WARNING, $channel, $message, $context, $e, $response);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement