/**
  * Log a message to the logs.
  *
  * @param string $level
  * @param mixed  $message
  * @param array  $context
  *
  * @return void
  */
 public function log($level, $message, array $context = [])
 {
     if (isset($context['title'])) {
         $title = $context['title'];
         unset($context['title']);
     }
     $msg = $this->formatMessage($message);
     $title = $this->limit(isset($title) ? $title : (string) $msg);
     if ($level === 'debug' || $level === 'info') {
         if ($message instanceof Exception || $message instanceof Throwable) {
             $title = get_class($message);
             $data = ['name' => $title, 'message' => $message->getMessage()];
         } else {
             $data = ['message' => $message];
         }
         $metaData = array_merge(array_merge($data, ['severity' => $level]), $context);
         $this->client->leaveBreadcrumb($title, 'log', array_filter($metaData));
         return;
     }
     $callback = function (Report $report) use($level, $context) {
         $report->setMetaData($context);
         $report->setSeverity($this->getSeverity($level));
     };
     if ($message instanceof Exception || $message instanceof Throwable) {
         $this->client->notifyException($message, $callback);
     } else {
         $this->client->notifyError($title, $msg, $callback);
     }
 }