Logger::EMERG, LogLevel::ALERT => Logger::ALERT, LogLevel::CRITICAL => Logger::CRIT, LogLevel::ERROR => Logger::ERR, LogLevel::WARNING => Logger::WARN, LogLevel::NOTICE => Logger::NOTICE, LogLevel::INFO => Logger::INFO, LogLevel::DEBUG => Logger::DEBUG, ]; /** * Constructor */ public function __construct(LoggerInterface $logger) { $this->logger = $logger; } /** * Returns composed LoggerInterface instance. * * @return LoggerInterface */ public function getLogger() { return $this->logger; } /** * Logs with an arbitrary level. * * @param mixed $level * @param string $message * @param array $context * @return void * @throws InvalidArgumentException If log level is not recognized. */ public function log($level, $message, array $context = []) { if (! array_key_exists($level, $this->psrPriorityMap)) { throw new InvalidArgumentException(sprintf( '$level must be one of PSR-3 log levels; received %s', var_export($level, true) )); } $priority = $this->psrPriorityMap[$level]; $this->logger->log($priority, $message, $context); } }