From 1feb6d2ef63fd24fb65bb0f072335da3f55ae38a Mon Sep 17 00:00:00 2001 From: Dmitry Khomutov Date: Thu, 20 Mar 2014 22:17:54 +0700 Subject: [PATCH] Improved error/exception handler and logging --- PHPCI/Logging/Handler.php | 13 +++++++++++-- PHPCI/Logging/LoggerConfig.php | 2 +- bootstrap.php | 2 +- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/PHPCI/Logging/Handler.php b/PHPCI/Logging/Handler.php index 3ae5e93f..36e80844 100644 --- a/PHPCI/Logging/Handler.php +++ b/PHPCI/Logging/Handler.php @@ -69,8 +69,17 @@ class Handler { $fatal_error = error_get_last(); - if ($fatal_error['type'] === E_ERROR) { - + try { + if (($e = error_get_last()) !== null) { + $e = new \ErrorException( + sprintf('%s: %s in %s line %d', $fatal_error['type'], $fatal_error['message'], $fatal_error['file'], $fatal_error['line']), + 0, $fatal_error['type'], $fatal_error['file'], $fatal_error['line'] + ); + $this->log($e); + } + } + catch (\Exception $e) + { $e = new \ErrorException( sprintf('%s: %s in %s line %d', $fatal_error['type'], $fatal_error['message'], $fatal_error['file'], $fatal_error['line']), 0, $fatal_error['type'], $fatal_error['file'], $fatal_error['line'] diff --git a/PHPCI/Logging/LoggerConfig.php b/PHPCI/Logging/LoggerConfig.php index 3eb0a5b2..b0ebeeec 100644 --- a/PHPCI/Logging/LoggerConfig.php +++ b/PHPCI/Logging/LoggerConfig.php @@ -48,7 +48,7 @@ class LoggerConfig { */ public function getFor($name) { $handlers = $this->getHandlers(self::KEY_AlwaysLoaded); - //$handlers = array_merge($handlers, $this->getHandlers($name)); + $handlers = array_merge($handlers, $this->getHandlers($name)); return new Logger($name, $handlers); } diff --git a/bootstrap.php b/bootstrap.php index a8ececf3..3cfcf038 100755 --- a/bootstrap.php +++ b/bootstrap.php @@ -44,7 +44,7 @@ if (!file_exists(dirname(__FILE__) . '/vendor/autoload.php') && defined('PHPCI_I require_once(dirname(__FILE__) . '/vendor/autoload.php'); $loggerConfig = LoggerConfig::newFromFile(__DIR__ . "/loggerconfig.php"); -Handler::register($loggerConfig->getFor('Exceptions')); +Handler::register($loggerConfig->getFor('_')); // Load configuration if present: $conf = array();