improved error logging
This commit is contained in:
		@@ -54,7 +54,7 @@ class ErrorHandler {
 | 
			
		||||
		$traceString    = $exception->getTraceAsString();
 | 
			
		||||
 | 
			
		||||
		$logMessage = $message . PHP_EOL . 'Class: ' . $exceptionClass . PHP_EOL . 'Trace:' . PHP_EOL . $traceString;
 | 
			
		||||
		logMessage($logMessage);
 | 
			
		||||
		$this->maniaControl->log($logMessage);
 | 
			
		||||
 | 
			
		||||
		if ($this->reportErrors) {
 | 
			
		||||
			$error                    = array();
 | 
			
		||||
@@ -142,7 +142,7 @@ class ErrorHandler {
 | 
			
		||||
		$traceString = $this->parseBackTrace(debug_backtrace());
 | 
			
		||||
 | 
			
		||||
		$logMessage = $message . PHP_EOL . 'File&Line: ' . $fileLine . PHP_EOL . 'Trace: ' . $traceString;
 | 
			
		||||
		logMessage($logMessage);
 | 
			
		||||
		$this->maniaControl->log($logMessage);
 | 
			
		||||
 | 
			
		||||
		if ($this->reportErrors && !$this->isUserErrorNumber($errorNumber)) {
 | 
			
		||||
			$error                    = array();
 | 
			
		||||
@@ -255,7 +255,7 @@ class ErrorHandler {
 | 
			
		||||
	 * @return bool
 | 
			
		||||
	 */
 | 
			
		||||
	private function isUserErrorNumber($errorNumber) {
 | 
			
		||||
		return ($errorNumber === E_USER_ERROR || $errorNumber === E_USER_WARNING || $errorNumber === E_USER_NOTICE || $errorNumber === E_USER_DEPRECATED);
 | 
			
		||||
		return ($errorNumber & E_USER_ERROR || $errorNumber & E_USER_WARNING || $errorNumber & E_USER_NOTICE || $errorNumber & E_USER_DEPRECATED);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
@@ -265,7 +265,7 @@ class ErrorHandler {
 | 
			
		||||
	 * @return bool
 | 
			
		||||
	 */
 | 
			
		||||
	private function shouldStopExecution($errorNumber) {
 | 
			
		||||
		return ($errorNumber === E_ERROR || $errorNumber === E_USER_ERROR || $errorNumber === E_FATAL);
 | 
			
		||||
		return ($errorNumber & E_ERROR || $errorNumber & E_USER_ERROR || $errorNumber & E_FATAL);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
 
 | 
			
		||||
@@ -2,8 +2,8 @@
 | 
			
		||||
 | 
			
		||||
namespace ManiaControl\Files;
 | 
			
		||||
 | 
			
		||||
use ManiaControl\Utils\Formatter;
 | 
			
		||||
use ManiaControl\ManiaControl;
 | 
			
		||||
use ManiaControl\Utils\Formatter;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Files Utility Class
 | 
			
		||||
@@ -77,11 +77,11 @@ abstract class FileUtil {
 | 
			
		||||
	public static function loadConfig($fileName) {
 | 
			
		||||
		$fileLocation = ManiaControlDir . 'configs' . DIRECTORY_SEPARATOR . $fileName;
 | 
			
		||||
		if (!file_exists($fileLocation)) {
 | 
			
		||||
			trigger_error("Config file doesn't exist! ({$fileName})");
 | 
			
		||||
			logMessage("Config File doesn't exist! ({$fileName})");
 | 
			
		||||
			return null;
 | 
			
		||||
		}
 | 
			
		||||
		if (!is_readable($fileLocation)) {
 | 
			
		||||
			trigger_error("Config file isn't readable! Please check your file permissions. ({$fileName})");
 | 
			
		||||
			logMessage("Config File isn't readable! Please check the File Permissions. ({$fileName})");
 | 
			
		||||
			return null;
 | 
			
		||||
		}
 | 
			
		||||
		return simplexml_load_file($fileLocation);
 | 
			
		||||
 
 | 
			
		||||
@@ -156,13 +156,29 @@ class ManiaControl implements CommandListener, TimerListener {
 | 
			
		||||
		$configFileName = ($configId ? $configId : 'server.xml');
 | 
			
		||||
		$this->config   = FileUtil::loadConfig($configFileName);
 | 
			
		||||
		if (!$this->config) {
 | 
			
		||||
			trigger_error("Error loading Configuration XML-File! ('{$configFileName}')", E_USER_ERROR);
 | 
			
		||||
			$this->quit("Error loading Configuration XML-File! ('{$configFileName}')", true);
 | 
			
		||||
		}
 | 
			
		||||
		if (!$this->config->server->port || $this->config->server->port == 'port') {
 | 
			
		||||
			trigger_error("Your Configuration File ('{$configFileName}') doesn't seem to be maintained. Please check it again!", E_USER_ERROR);
 | 
			
		||||
			$this->quit("Your Configuration File ('{$configFileName}') doesn't seem to be maintained. Please check it again!", true);
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Quit ManiaControl and log the given message
 | 
			
		||||
	 *
 | 
			
		||||
	 * @param string $message
 | 
			
		||||
	 * @param bool   $errorPrefix
 | 
			
		||||
	 */
 | 
			
		||||
	public function quit($message = null, $errorPrefix = false) {
 | 
			
		||||
		if ($message) {
 | 
			
		||||
			if ($errorPrefix) {
 | 
			
		||||
				$message = '[ERROR] ' . $message;
 | 
			
		||||
			}
 | 
			
		||||
			$this->log($message);
 | 
			
		||||
		}
 | 
			
		||||
		exit();
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Check Connection
 | 
			
		||||
	 */
 | 
			
		||||
@@ -265,22 +281,6 @@ class ManiaControl implements CommandListener, TimerListener {
 | 
			
		||||
		$this->quit("ManiaControl Shutdown requested by '{$player->login}'!");
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Quit ManiaControl and log the given message
 | 
			
		||||
	 *
 | 
			
		||||
	 * @param string $message
 | 
			
		||||
	 * @param bool   $errorPrefix
 | 
			
		||||
	 */
 | 
			
		||||
	public function quit($message = null, $errorPrefix = false) {
 | 
			
		||||
		if ($message) {
 | 
			
		||||
			if ($errorPrefix) {
 | 
			
		||||
				$message = '[ERROR] ' . $message;
 | 
			
		||||
			}
 | 
			
		||||
			$this->log($message);
 | 
			
		||||
		}
 | 
			
		||||
		exit();
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Handle PHP Process Shutdown
 | 
			
		||||
	 */
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user