141 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			PHP
		
	
	
	
		
		
			
		
	
	
			141 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			PHP
		
	
	
	
|  | <?php | ||
|  | 
 | ||
|  | namespace Psr\Log; | ||
|  | 
 | ||
|  | /** | ||
|  |  * This is a simple Logger trait that classes unable to extend AbstractLogger | ||
|  |  * (because they extend another class, etc) can include. | ||
|  |  * | ||
|  |  * It simply delegates all log-level-specific methods to the `log` method to | ||
|  |  * reduce boilerplate code that a simple Logger that does the same thing with | ||
|  |  * messages regardless of the error level has to implement. | ||
|  |  */ | ||
|  | trait LoggerTrait | ||
|  | { | ||
|  |     /** | ||
|  |      * System is unusable. | ||
|  |      * | ||
|  |      * @param string $message | ||
|  |      * @param array  $context | ||
|  |      * | ||
|  |      * @return void | ||
|  |      */ | ||
|  |     public function emergency($message, array $context = array()) | ||
|  |     { | ||
|  |         $this->log(LogLevel::EMERGENCY, $message, $context); | ||
|  |     } | ||
|  | 
 | ||
|  |     /** | ||
|  |      * Action must be taken immediately. | ||
|  |      * | ||
|  |      * Example: Entire website down, database unavailable, etc. This should | ||
|  |      * trigger the SMS alerts and wake you up. | ||
|  |      * | ||
|  |      * @param string $message | ||
|  |      * @param array  $context | ||
|  |      * | ||
|  |      * @return void | ||
|  |      */ | ||
|  |     public function alert($message, array $context = array()) | ||
|  |     { | ||
|  |         $this->log(LogLevel::ALERT, $message, $context); | ||
|  |     } | ||
|  | 
 | ||
|  |     /** | ||
|  |      * Critical conditions. | ||
|  |      * | ||
|  |      * Example: Application component unavailable, unexpected exception. | ||
|  |      * | ||
|  |      * @param string $message | ||
|  |      * @param array  $context | ||
|  |      * | ||
|  |      * @return void | ||
|  |      */ | ||
|  |     public function critical($message, array $context = array()) | ||
|  |     { | ||
|  |         $this->log(LogLevel::CRITICAL, $message, $context); | ||
|  |     } | ||
|  | 
 | ||
|  |     /** | ||
|  |      * Runtime errors that do not require immediate action but should typically | ||
|  |      * be logged and monitored. | ||
|  |      * | ||
|  |      * @param string $message | ||
|  |      * @param array  $context | ||
|  |      * | ||
|  |      * @return void | ||
|  |      */ | ||
|  |     public function error($message, array $context = array()) | ||
|  |     { | ||
|  |         $this->log(LogLevel::ERROR, $message, $context); | ||
|  |     } | ||
|  | 
 | ||
|  |     /** | ||
|  |      * Exceptional occurrences that are not errors. | ||
|  |      * | ||
|  |      * Example: Use of deprecated APIs, poor use of an API, undesirable things | ||
|  |      * that are not necessarily wrong. | ||
|  |      * | ||
|  |      * @param string $message | ||
|  |      * @param array  $context | ||
|  |      * | ||
|  |      * @return void | ||
|  |      */ | ||
|  |     public function warning($message, array $context = array()) | ||
|  |     { | ||
|  |         $this->log(LogLevel::WARNING, $message, $context); | ||
|  |     } | ||
|  | 
 | ||
|  |     /** | ||
|  |      * Normal but significant events. | ||
|  |      * | ||
|  |      * @param string $message | ||
|  |      * @param array  $context | ||
|  |      * | ||
|  |      * @return void | ||
|  |      */ | ||
|  |     public function notice($message, array $context = array()) | ||
|  |     { | ||
|  |         $this->log(LogLevel::NOTICE, $message, $context); | ||
|  |     } | ||
|  | 
 | ||
|  |     /** | ||
|  |      * Interesting events. | ||
|  |      * | ||
|  |      * Example: User logs in, SQL logs. | ||
|  |      * | ||
|  |      * @param string $message | ||
|  |      * @param array  $context | ||
|  |      * | ||
|  |      * @return void | ||
|  |      */ | ||
|  |     public function info($message, array $context = array()) | ||
|  |     { | ||
|  |         $this->log(LogLevel::INFO, $message, $context); | ||
|  |     } | ||
|  | 
 | ||
|  |     /** | ||
|  |      * Detailed debug information. | ||
|  |      * | ||
|  |      * @param string $message | ||
|  |      * @param array  $context | ||
|  |      * | ||
|  |      * @return void | ||
|  |      */ | ||
|  |     public function debug($message, array $context = array()) | ||
|  |     { | ||
|  |         $this->log(LogLevel::DEBUG, $message, $context); | ||
|  |     } | ||
|  | 
 | ||
|  |     /** | ||
|  |      * Logs with an arbitrary level. | ||
|  |      * | ||
|  |      * @param mixed  $level | ||
|  |      * @param string $message | ||
|  |      * @param array  $context | ||
|  |      * | ||
|  |      * @return void | ||
|  |      */ | ||
|  |     abstract public function log($level, $message, array $context = array()); | ||
|  | } |