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

Merge pull request #271 from Petah/patch-1

Prevent throwing an exception in the case that the fatal error level is not set.
Jordi Boggiano 12 лет назад
Родитель
Сommit
e8f7aeefea
1 измененных файлов с 8 добавлено и 4 удалено
  1. 8 4
      src/Monolog/ErrorHandler.php

+ 8 - 4
src/Monolog/ErrorHandler.php

@@ -72,7 +72,7 @@ class ErrorHandler
     public function registerExceptionHandler($level = null, $callPrevious = true)
     {
         $prev = set_exception_handler(array($this, 'handleException'));
-        $this->uncaughtExceptionLevel = $level === null ? LogLevel::ERROR : $level;
+        $this->uncaughtExceptionLevel = $level;
         if ($callPrevious && $prev) {
             $this->previousExceptionHandler = $prev;
         }
@@ -92,7 +92,7 @@ class ErrorHandler
         register_shutdown_function(array($this, 'handleFatalError'));
 
         $this->reservedMemory = str_repeat(' ', 1024 * $reservedMemorySize);
-        $this->fatalLevel = $level === null ? LogLevel::ALERT : $level;
+        $this->fatalLevel = $level;
     }
 
     protected function defaultErrorLevelMap()
@@ -121,7 +121,11 @@ class ErrorHandler
      */
     public function handleException(\Exception $e)
     {
-        $this->logger->log($this->uncaughtExceptionLevel, 'Uncaught exception', array('exception' => $e));
+        $this->logger->log(
+            $this->uncaughtExceptionLevel === null ? LogLevel::ERROR : $this->uncaughtExceptionLevel,
+            'Uncaught exception',
+            array('exception' => $e)
+        );
 
         if ($this->previousExceptionHandler) {
             call_user_func($this->previousExceptionHandler, $e);
@@ -157,7 +161,7 @@ class ErrorHandler
         $lastError = error_get_last();
         if ($lastError && in_array($lastError['type'], self::$fatalErrors)) {
             $this->logger->log(
-                $this->fatalLevel,
+                $this->fatalLevel === null ? LogLevel::ALERT : $this->fatalLevel,
                 'Fatal Error ('.self::codeToString($lastError['type']).'): '.$lastError['message'],
                 array('file' => $lastError['file'], 'line' => $lastError['line'])
             );