public function log($level, $message, array $context = [])
    {
        // Do not allow users to supply nonsense on the log level
        if (array_key_exists($level, $this->logPrefixesPerLevel) === false) {
            throw new InvalidArgumentException('Console method not recognised');
        }

        // Parse message into a string we can use
        $parsedMessage = $this->parseMessage($message);

        // Examine context, and alter the message accordingly
        $parsedMessage .= $this->parseContext($context);

        // Speak!
        $this->output($this->format($level, $parsedMessage));
    }