diff --git a/src/Monolog/Logger.php b/src/Monolog/Logger.php index 4a38de7f..56613c60 100644 --- a/src/Monolog/Logger.php +++ b/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); } diff --git a/tests/Monolog/LoggerTest.php b/tests/Monolog/LoggerTest.php index 7a19c0b4..d5bb657f 100644 --- a/tests/Monolog/LoggerTest.php +++ b/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