Selaa lähdekoodia

Make the RavenHandler picks the first highest record as main

Tugdual Saunier 9 vuotta sitten
vanhempi
commit
d234839de1

+ 1 - 1
src/Monolog/Handler/RavenHandler.php

@@ -84,7 +84,7 @@ class RavenHandler extends AbstractProcessingHandler
 
         // the record with the highest severity is the "main" one
         $record = array_reduce($records, function ($highest, $record) {
-            if ($record['level'] >= $highest['level']) {
+            if ($record['level'] > $highest['level']) {
                 return $record;
             }
 

+ 26 - 0
tests/Monolog/Handler/RavenHandlerTest.php

@@ -195,6 +195,32 @@ class RavenHandlerTest extends TestCase
         $handler->handleBatch($records);
     }
 
+    public function testHandleBatchPicksProperMessage()
+    {
+        $records = array(
+            $this->getRecord(Logger::DEBUG, 'debug message 1'),
+            $this->getRecord(Logger::DEBUG, 'debug message 2'),
+            $this->getRecord(Logger::INFO, 'information 1'),
+            $this->getRecord(Logger::ERROR, 'error 1'),
+            $this->getRecord(Logger::WARNING, 'warning'),
+            $this->getRecord(Logger::ERROR, 'error 2'),
+            $this->getRecord(Logger::INFO, 'information 2'),
+        );
+
+        $logFormatter = $this->getMock('Monolog\\Formatter\\FormatterInterface');
+        $logFormatter->expects($this->once())->method('formatBatch');
+
+        $formatter = $this->getMock('Monolog\\Formatter\\FormatterInterface');
+        $formatter->expects($this->once())->method('format')->with($this->callback(function ($record) use ($records) {
+            return $record['message'] == 'error 1';
+        }));
+
+        $handler = $this->getHandler($this->getRavenClient());
+        $handler->setBatchFormatter($logFormatter);
+        $handler->setFormatter($formatter);
+        $handler->handleBatch($records);
+    }
+
     public function testGetSetBatchFormatter()
     {
         $ravenClient = $this->getRavenClient();