Просмотр исходного кода

Merge pull request #175 from pborreli/issue-171

Passing context as extra parameters (Additional data)
Jordi Boggiano 12 лет назад
Родитель
Сommit
434ef8bbf6
1 измененных файлов с 23 добавлено и 3 удалено
  1. 23 3
      src/Monolog/Handler/RavenHandler.php

+ 23 - 3
src/Monolog/Handler/RavenHandler.php

@@ -11,6 +11,7 @@
 
 namespace Monolog\Handler;
 
+use Monolog\Formatter\LineFormatter;
 use Monolog\Logger;
 use Monolog\Handler\AbstractProcessingHandler;
 use Raven_Client;
@@ -59,14 +60,33 @@ class RavenHandler extends AbstractProcessingHandler
      */
     protected function write(array $record)
     {
+        $level = $this->logLevels[$record['level']];
+
+        $options = array();
+        $options['level'] = $level;
+        if (!empty($record['context'])) {
+            $options['extra']['context'] = $record['context'];
+        }
+        if (!empty($record['extra'])) {
+            $options['extra']['extra'] = $record['extra'];
+        }
+
         $this->ravenClient->captureMessage(
             $record['formatted'],
-            array(),                              // $params - not used
-            $this->logLevels[$record['level']],   // $level
-            false                                 // $stack
+            array(),                                                                  // $params - not used
+            version_compare(Raven_Client::VERSION, '0.1.0', '>') ? $options : $level, // $level or $options
+            false                                                                     // $stack
         );
         if ($record['level'] >= Logger::ERROR && isset($record['context']['exception'])) {
             $this->ravenClient->captureException($record['context']['exception']);
         }
     }
+
+    /**
+     * {@inheritDoc}
+     */
+    protected function getDefaultFormatter()
+    {
+        return new LineFormatter('[%channel%] %message%');
+    }
 }