removed 'application' folder to have everything in the root directory
This commit is contained in:
		
							
								
								
									
										134
									
								
								core/Logger.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										134
									
								
								core/Logger.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,134 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace ManiaControl;
 | 
			
		||||
 | 
			
		||||
use ManiaControl\Files\FileUtil;
 | 
			
		||||
use ManiaControl\Utils\Formatter;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * ManiaControl Logger Class
 | 
			
		||||
 *
 | 
			
		||||
 * @author    ManiaControl Team <mail@maniacontrol.com>
 | 
			
		||||
 * @copyright 2014 ManiaControl Team
 | 
			
		||||
 * @license   http://www.gnu.org/licenses/ GNU General Public License, Version 3
 | 
			
		||||
 */
 | 
			
		||||
abstract class Logger {
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Setup the logging mechanism
 | 
			
		||||
	 */
 | 
			
		||||
	public static function setup() {
 | 
			
		||||
		self::setupErrorLogFileName();
 | 
			
		||||
		self::cleanLogsFolder();
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Set the error log file name
 | 
			
		||||
	 */
 | 
			
		||||
	private static function setupErrorLogFileName() {
 | 
			
		||||
		$logsFolder = self::getLogsFolder();
 | 
			
		||||
		if ($logsFolder) {
 | 
			
		||||
			$logFileName = $logsFolder . 'ManiaControl';
 | 
			
		||||
			if (!defined('LOG_NAME_USE_DATE') || LOG_NAME_USE_DATE) {
 | 
			
		||||
				$logFileName .= '_' . date('Y-m-d');
 | 
			
		||||
			}
 | 
			
		||||
			if (!defined('LOG_NAME_USE_PID') || LOG_NAME_USE_PID) {
 | 
			
		||||
				$logFileName .= '_' . getmypid();
 | 
			
		||||
			}
 | 
			
		||||
			$logFileName .= '.log';
 | 
			
		||||
			ini_set('error_log', $logFileName);
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Get the logs folder and create it if necessary
 | 
			
		||||
	 *
 | 
			
		||||
	 * @return string
 | 
			
		||||
	 */
 | 
			
		||||
	public static function getLogsFolder() {
 | 
			
		||||
		$logsFolder = MANIACONTROL_PATH . 'logs' . DIRECTORY_SEPARATOR;
 | 
			
		||||
		if (!is_dir($logsFolder) && !mkdir($logsFolder)) {
 | 
			
		||||
			self::logError("Couldn't create the logs folder!");
 | 
			
		||||
			return null;
 | 
			
		||||
		}
 | 
			
		||||
		if (!is_writeable($logsFolder)) {
 | 
			
		||||
			self::logError("ManiaControl doesn't have the necessary write rights for the logs folder!");
 | 
			
		||||
			return null;
 | 
			
		||||
		}
 | 
			
		||||
		return $logsFolder;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Delete old ManiaControl log files
 | 
			
		||||
	 *
 | 
			
		||||
	 * @return bool
 | 
			
		||||
	 */
 | 
			
		||||
	private static function cleanLogsFolder() {
 | 
			
		||||
		$logsFolderPath = self::getLogsFolder();
 | 
			
		||||
		return FileUtil::cleanDirectory($logsFolderPath);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Log and output the given Error message
 | 
			
		||||
	 *
 | 
			
		||||
	 * @param string $message
 | 
			
		||||
	 * @param bool   $stripCodes
 | 
			
		||||
	 * @param bool   $eol
 | 
			
		||||
	 */
 | 
			
		||||
	public static function logError($message, $stripCodes = false, $eol = true) {
 | 
			
		||||
		$message = '[ERROR] ' . $message;
 | 
			
		||||
		self::log($message, $stripCodes, $eol);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Log and output the given message
 | 
			
		||||
	 *
 | 
			
		||||
	 * @param string $message
 | 
			
		||||
	 * @param bool   $stripCodes
 | 
			
		||||
	 * @param bool   $eol
 | 
			
		||||
	 */
 | 
			
		||||
	public static function log($message, $stripCodes = false, $eol = true) {
 | 
			
		||||
		if ($stripCodes) {
 | 
			
		||||
			$message = Formatter::stripCodes($message);
 | 
			
		||||
		}
 | 
			
		||||
		error_log($message);
 | 
			
		||||
		self::output($message, $eol);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Echo the given message
 | 
			
		||||
	 *
 | 
			
		||||
	 * @param string $message
 | 
			
		||||
	 * @param bool   $eol
 | 
			
		||||
	 */
 | 
			
		||||
	private static function output($message, $eol = true) {
 | 
			
		||||
		if ($eol) {
 | 
			
		||||
			$message = '[' . date('d-M-Y H:i:s e') . '] ' . $message . PHP_EOL;
 | 
			
		||||
		}
 | 
			
		||||
		echo $message;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Log and output the given Info message
 | 
			
		||||
	 *
 | 
			
		||||
	 * @param string $message
 | 
			
		||||
	 * @param bool   $stripCodes
 | 
			
		||||
	 * @param bool   $eol
 | 
			
		||||
	 */
 | 
			
		||||
	public static function logInfo($message, $stripCodes = false, $eol = true) {
 | 
			
		||||
		$message = '[INFO] ' . $message;
 | 
			
		||||
		self::log($message, $stripCodes, $eol);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Log and output the given Warning message
 | 
			
		||||
	 *
 | 
			
		||||
	 * @param string $message
 | 
			
		||||
	 * @param bool   $stripCodes
 | 
			
		||||
	 * @param bool   $eol
 | 
			
		||||
	 */
 | 
			
		||||
	public static function logWarning($message, $stripCodes = false, $eol = true) {
 | 
			
		||||
		$message = '[WARNING] ' . $message;
 | 
			
		||||
		self::log($message, $stripCodes, $eol);
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user