mirror of https://github.com/dnomd343/kms-server
				
				
			
			You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							57 lines
						
					
					
						
							1.7 KiB
						
					
					
				
			
		
		
		
			
			
			
		
		
	
	
							57 lines
						
					
					
						
							1.7 KiB
						
					
					
				
								<?php
							 | 
						|
								
							 | 
						|
								logging::$logLevel = logging::INFO;
							 | 
						|
								
							 | 
						|
								$logColor = array(
							 | 
						|
								    logging::DEBUG    => '37m', // white
							 | 
						|
								    logging::INFO     => '36m', // light blue
							 | 
						|
								    logging::WARNING  => '33m', // yellow
							 | 
						|
								    logging::ERROR    => '31m', // red
							 | 
						|
								    logging::CRITICAL => '35m', // purple
							 | 
						|
								);
							 | 
						|
								
							 | 
						|
								class logging {
							 | 
						|
								    public const DEBUG = 0;
							 | 
						|
								    public const INFO = 1;
							 | 
						|
								    public const WARNING = 2;
							 | 
						|
								    public const ERROR = 3;
							 | 
						|
								    public const CRITICAL = 4;
							 | 
						|
								    public static int $logLevel;
							 | 
						|
								    private static array $logName = array(
							 | 
						|
								        logging::DEBUG    => 'DEBUG',
							 | 
						|
								        logging::INFO     => 'INFO',
							 | 
						|
								        logging::WARNING  => 'WARNING',
							 | 
						|
								        logging::ERROR    => 'ERROR',
							 | 
						|
								        logging::CRITICAL => 'CRITICAL',
							 | 
						|
								    );
							 | 
						|
								
							 | 
						|
								    public static function debug($message): void {
							 | 
						|
								        logging::output($message, logging::DEBUG); // debug level
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    public static function info($message): void {
							 | 
						|
								        logging::output($message, logging::INFO); // info level
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    public static function warning($message): void {
							 | 
						|
								        logging::output($message, logging::WARNING); // warning level
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    public static function error($message): void {
							 | 
						|
								        logging::output($message, logging::ERROR); // error level
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    public static function critical($message): void {
							 | 
						|
								        logging::output($message, logging::CRITICAL); // critical level
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    private static function output($message, $logType): void {
							 | 
						|
								        global $logColor;
							 | 
						|
								        if ($logType < logging::$logLevel) {
							 | 
						|
								            return; // skip output
							 | 
						|
								        }
							 | 
						|
								        $timeStr = '[' . date('Y-m-d H:i:s', time()) . ']';
							 | 
						|
								        $message = $timeStr . ' [' . logging::$logName[$logType] . '] ' . $message;
							 | 
						|
								        echo "\033[" . $logColor[$logType] . $message . "\033[0m" . PHP_EOL;
							 | 
						|
								    }
							 | 
						|
								}
							 | 
						|
								
							 |