improved error handler, added exception handler
This commit is contained in:
parent
a18fe5c96f
commit
96a90b0b0c
@ -1,6 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
// Run configuration
|
// Run configuration
|
||||||
|
|
||||||
define('LOG_WRITE_CURRENT_FILE', 'ManiaControl.log'); // Write current log to extra file in base dir
|
define('LOG_WRITE_CURRENT_FILE', 'ManiaControl.log'); // Write current log to extra file in base dir
|
||||||
define('LOG_NAME_USE_DATE', true); // Use current date as suffix for log file name in logs folder
|
define('LOG_NAME_USE_DATE', true); // Use current date as suffix for log file name in logs folder
|
||||||
define('LOG_NAME_USE_PID', true); // Use current process id as suffix for log file name in logs folder
|
define('LOG_NAME_USE_PID', true); // Use current process id as suffix for log file name in logs folder
|
||||||
@ -20,8 +21,12 @@ if (!is_dir($logFileName)) {
|
|||||||
mkdir($logFileName);
|
mkdir($logFileName);
|
||||||
}
|
}
|
||||||
$logFileName .= '/ManiaControl';
|
$logFileName .= '/ManiaControl';
|
||||||
if (LOG_NAME_USE_DATE) $logFileName .= '_' . date('Y-m-d');
|
if (LOG_NAME_USE_DATE) {
|
||||||
if (LOG_NAME_USE_PID) $logFileName .= '_' . getmypid();
|
$logFileName .= '_' . date('Y-m-d');
|
||||||
|
}
|
||||||
|
if (LOG_NAME_USE_PID) {
|
||||||
|
$logFileName .= '_' . getmypid();
|
||||||
|
}
|
||||||
$logFileName .= '.log';
|
$logFileName .= '.log';
|
||||||
define('LOG_FILE', $logFileName);
|
define('LOG_FILE', $logFileName);
|
||||||
|
|
||||||
@ -41,7 +46,9 @@ if (LOG_WRITE_CURRENT_FILE) {
|
|||||||
*/
|
*/
|
||||||
function logMessage($message) {
|
function logMessage($message) {
|
||||||
$message .= PHP_EOL;
|
$message .= PHP_EOL;
|
||||||
if (defined('LOG_CURRENT_FILE')) file_put_contents(LOG_CURRENT_FILE, $message, FILE_APPEND);
|
if (defined('LOG_CURRENT_FILE')) {
|
||||||
|
file_put_contents(LOG_CURRENT_FILE, $message, FILE_APPEND);
|
||||||
|
}
|
||||||
file_put_contents(LOG_FILE, $message, FILE_APPEND);
|
file_put_contents(LOG_FILE, $message, FILE_APPEND);
|
||||||
echo $message;
|
echo $message;
|
||||||
}
|
}
|
||||||
@ -75,8 +82,19 @@ function getErrorTag($errorLevel) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Register error handler
|
// Register error handler
|
||||||
set_error_handler(
|
set_error_handler('errorHandler', -1);
|
||||||
function ($errorNumber, $errorString, $errorFile, $errorLine) {
|
set_exception_handler('exceptionHandler');
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Error Handler
|
||||||
|
*
|
||||||
|
* @param $errorNumber
|
||||||
|
* @param $errorString
|
||||||
|
* @param $errorFile
|
||||||
|
* @param $errorLine
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
function errorHandler($errorNumber, $errorString, $errorFile, $errorLine) {
|
||||||
if (error_reporting() == 0) {
|
if (error_reporting() == 0) {
|
||||||
// Error suppressed
|
// Error suppressed
|
||||||
return false;
|
return false;
|
||||||
@ -90,18 +108,27 @@ set_error_handler(
|
|||||||
exit();
|
exit();
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}, -1);
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Exception Handler
|
||||||
|
*
|
||||||
|
* @param Exception $ex
|
||||||
|
*/
|
||||||
|
function exceptionHandler(Exception $ex) {
|
||||||
|
$message = "[ManiaControl EXCEPTION]: {$ex->getMessage()} Trace: {$ex->getTraceAsString()}!";
|
||||||
|
logMessage($message);
|
||||||
|
}
|
||||||
|
|
||||||
// Autoload Function that loads ManiaControl Class Files on Demand
|
// Autoload Function that loads ManiaControl Class Files on Demand
|
||||||
spl_autoload_register(
|
spl_autoload_register(function ($className) {
|
||||||
function ($className) {
|
|
||||||
$classPath = str_replace('\\', DIRECTORY_SEPARATOR, $className);
|
$classPath = str_replace('\\', DIRECTORY_SEPARATOR, $className);
|
||||||
$classPath = preg_replace('/ManiaControl/', 'core', $classPath, 1);
|
$classPath = preg_replace('/ManiaControl/', 'core', $classPath, 1);
|
||||||
$filePath = ManiaControlDir . DIRECTORY_SEPARATOR . $classPath . '.php';
|
$filePath = ManiaControlDir . DIRECTORY_SEPARATOR . $classPath . '.php';
|
||||||
if (file_exists($filePath)) {
|
if (file_exists($filePath)) {
|
||||||
require_once $filePath;
|
require_once $filePath;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// Start ManiaControl
|
// Start ManiaControl
|
||||||
$maniaControl = new \ManiaControl\ManiaControl();
|
$maniaControl = new \ManiaControl\ManiaControl();
|
||||||
|
Loading…
Reference in New Issue
Block a user