Parcourir la source

Override getDefaultFormatter instead of creating a formatter with 'new' in method 'write'. Using levelMap again. Refactored test.

ChristianB il y a 13 ans
Parent
commit
a2162c1787

+ 20 - 2
src/Monolog/Handler/ZendMonitorHandler.php

@@ -61,9 +61,9 @@ class ZendMonitorHandler extends AbstractProcessingHandler
     protected function write(array $record)
     {
         if ($this->isZendServer()) {
-            $formatter = new NormalizerFormatter();
+            $formatter = $this->getDefaultFormatter();
             $record = $formatter->format($record);
-            $this->writeZendMonitorCustomEvent($record['level'], $record['message']);
+            $this->writeZendMonitorCustomEvent($this->levelMap[$record['level']], $record['message']);
         }
     }
 
@@ -78,6 +78,24 @@ class ZendMonitorHandler extends AbstractProcessingHandler
         zend_monitor_custom_event($level, $message);
     }
 
+    /**
+     * {@inheritdoc}
+     */
+    public function getDefaultFormatter()
+    {
+        return new NormalizerFormatter();
+    }
+
+    /**
+     * Get the level map
+     *
+     * @return array
+     */
+    public function getLevelMap()
+    {
+        return $this->levelMap;
+    }
+
     /**
      * Is Zend Server?
      *

+ 3 - 1
tests/Monolog/Handler/ZendMonitorHandlerTest.php

@@ -45,9 +45,11 @@ class ZendMonitorHandlerTest extends TestCase
                             ->setMethods(array('writeZendMonitorCustomEvent'))
                             ->getMock();
 
+        $levelMap = $zendMonitor->getLevelMap();
+
         $zendMonitor->expects($this->once())
                     ->method('writeZendMonitorCustomEvent')
-                    ->with($record['level'], $record['message']);
+                    ->with($levelMap[$record['level']], $record['message']);
 
         $zendMonitor->handle($record);
     }