コード例 #1
0
ファイル: Logger.php プロジェクト: tillk/vufind
 /**
  * Register a shutdown handler to log fatal errors
  *
  * @link http://www.php.net/manual/function.register-shutdown-function.php
  * @param  Logger $logger
  * @return bool
  */
 public static function registerFatalErrorShutdownFunction(Logger $logger)
 {
     // Only register once per instance
     if (static::$registeredFatalErrorShutdownFunction) {
         return false;
     }
     $errorPriorityMap = static::$errorPriorityMap;
     register_shutdown_function(function () use($logger, $errorPriorityMap) {
         $error = error_get_last();
         if (null !== $error && $error['type'] === E_ERROR) {
             $logger->log($errorPriorityMap[E_ERROR], $error['message'], array('file' => $error['file'], 'line' => $error['line']));
         }
     });
     static::$registeredFatalErrorShutdownFunction = true;
     return true;
 }
コード例 #2
0
ファイル: Logger.php プロジェクト: arnie87/gofiliate_test
 /**
  * Register a shutdown handler to log fatal errors
  *
  * @link http://www.php.net/manual/function.register-shutdown-function.php
  * @param  Logger $logger
  * @return bool
  */
 public static function registerFatalErrorShutdownFunction(Logger $logger)
 {
     // Only register once per instance
     if (static::$registeredFatalErrorShutdownFunction) {
         return false;
     }
     $errorPriorityMap = static::$errorPriorityMap;
     register_shutdown_function(function () use($logger, $errorPriorityMap) {
         $error = error_get_last();
         if (null === $error || !in_array($error['type'], [E_ERROR, E_PARSE, E_CORE_ERROR, E_CORE_WARNING, E_COMPILE_ERROR, E_COMPILE_WARNING], true)) {
             return;
         }
         $logger->log($errorPriorityMap[$error['type']], $error['message'], ['file' => $error['file'], 'line' => $error['line']]);
     });
     static::$registeredFatalErrorShutdownFunction = true;
     return true;
 }