/**
  * Logs with an arbitrary level.
  *
  * @param mixed  $level
  * @param string $message
  * @param array  $context
  * @return null
  * @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, 1)));
     }
     $priority = $this->psrPriorityMap[$level];
     $this->logger->log($priority, $message, $context);
 }