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

Removed Logger::toMonologLevel() code duplication and added relevant tests

Reda Bouchaala 10 лет назад
Родитель
Сommit
2cb4a57490
2 измененных файлов с 17 добавлено и 4 удалено
  1. 2 4
      src/Monolog/Logger.php
  2. 15 0
      tests/Monolog/LoggerTest.php

+ 2 - 4
src/Monolog/Logger.php

@@ -438,10 +438,8 @@ class Logger implements LoggerInterface
      */
     public function log($level, $message, array $context = array())
     {
-        if (is_string($level) && defined(__CLASS__.'::'.strtoupper($level))) {
-            $level = constant(__CLASS__.'::'.strtoupper($level));
-        }
-
+        $level = static::toMonologLevel($level);
+        
         return $this->addRecord($level, $message, $context);
     }
 

+ 15 - 0
tests/Monolog/LoggerTest.php

@@ -33,6 +33,21 @@ class LoggerTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals('ERROR', Logger::getLevelName(Logger::ERROR));
     }
 
+    /**
+     * @covers Monolog\Logger::toMonologLevel
+     */
+    public function testConvertPSR3ToMonologLevel()
+    {
+        $this->assertEquals(Logger::toMonologLevel('debug'), 100);
+        $this->assertEquals(Logger::toMonologLevel('info'), 200);
+        $this->assertEquals(Logger::toMonologLevel('notice'), 250);
+        $this->assertEquals(Logger::toMonologLevel('warning'), 300);
+        $this->assertEquals(Logger::toMonologLevel('error'), 400);
+        $this->assertEquals(Logger::toMonologLevel('critical'), 500);
+        $this->assertEquals(Logger::toMonologLevel('alert'), 550);
+        $this->assertEquals(Logger::toMonologLevel('emergency'), 600);
+    }
+
     /**
      * @covers Monolog\Logger::getLevelName
      * @expectedException InvalidArgumentException