1*d10b5556SXylle<?php 2*d10b5556SXylle 3*d10b5556SXyllenamespace Psr\Log; 4*d10b5556SXylle 5*d10b5556SXylle/** 6*d10b5556SXylle * This is a simple Logger trait that classes unable to extend AbstractLogger 7*d10b5556SXylle * (because they extend another class, etc) can include. 8*d10b5556SXylle * 9*d10b5556SXylle * It simply delegates all log-level-specific methods to the `log` method to 10*d10b5556SXylle * reduce boilerplate code that a simple Logger that does the same thing with 11*d10b5556SXylle * messages regardless of the error level has to implement. 12*d10b5556SXylle */ 13*d10b5556SXylletrait LoggerTrait 14*d10b5556SXylle{ 15*d10b5556SXylle /** 16*d10b5556SXylle * System is unusable. 17*d10b5556SXylle * 18*d10b5556SXylle * @param string $message 19*d10b5556SXylle * @param array $context 20*d10b5556SXylle * 21*d10b5556SXylle * @return void 22*d10b5556SXylle */ 23*d10b5556SXylle public function emergency($message, array $context = array()) 24*d10b5556SXylle { 25*d10b5556SXylle $this->log(LogLevel::EMERGENCY, $message, $context); 26*d10b5556SXylle } 27*d10b5556SXylle 28*d10b5556SXylle /** 29*d10b5556SXylle * Action must be taken immediately. 30*d10b5556SXylle * 31*d10b5556SXylle * Example: Entire website down, database unavailable, etc. This should 32*d10b5556SXylle * trigger the SMS alerts and wake you up. 33*d10b5556SXylle * 34*d10b5556SXylle * @param string $message 35*d10b5556SXylle * @param array $context 36*d10b5556SXylle * 37*d10b5556SXylle * @return void 38*d10b5556SXylle */ 39*d10b5556SXylle public function alert($message, array $context = array()) 40*d10b5556SXylle { 41*d10b5556SXylle $this->log(LogLevel::ALERT, $message, $context); 42*d10b5556SXylle } 43*d10b5556SXylle 44*d10b5556SXylle /** 45*d10b5556SXylle * Critical conditions. 46*d10b5556SXylle * 47*d10b5556SXylle * Example: Application component unavailable, unexpected exception. 48*d10b5556SXylle * 49*d10b5556SXylle * @param string $message 50*d10b5556SXylle * @param array $context 51*d10b5556SXylle * 52*d10b5556SXylle * @return void 53*d10b5556SXylle */ 54*d10b5556SXylle public function critical($message, array $context = array()) 55*d10b5556SXylle { 56*d10b5556SXylle $this->log(LogLevel::CRITICAL, $message, $context); 57*d10b5556SXylle } 58*d10b5556SXylle 59*d10b5556SXylle /** 60*d10b5556SXylle * Runtime errors that do not require immediate action but should typically 61*d10b5556SXylle * be logged and monitored. 62*d10b5556SXylle * 63*d10b5556SXylle * @param string $message 64*d10b5556SXylle * @param array $context 65*d10b5556SXylle * 66*d10b5556SXylle * @return void 67*d10b5556SXylle */ 68*d10b5556SXylle public function error($message, array $context = array()) 69*d10b5556SXylle { 70*d10b5556SXylle $this->log(LogLevel::ERROR, $message, $context); 71*d10b5556SXylle } 72*d10b5556SXylle 73*d10b5556SXylle /** 74*d10b5556SXylle * Exceptional occurrences that are not errors. 75*d10b5556SXylle * 76*d10b5556SXylle * Example: Use of deprecated APIs, poor use of an API, undesirable things 77*d10b5556SXylle * that are not necessarily wrong. 78*d10b5556SXylle * 79*d10b5556SXylle * @param string $message 80*d10b5556SXylle * @param array $context 81*d10b5556SXylle * 82*d10b5556SXylle * @return void 83*d10b5556SXylle */ 84*d10b5556SXylle public function warning($message, array $context = array()) 85*d10b5556SXylle { 86*d10b5556SXylle $this->log(LogLevel::WARNING, $message, $context); 87*d10b5556SXylle } 88*d10b5556SXylle 89*d10b5556SXylle /** 90*d10b5556SXylle * Normal but significant events. 91*d10b5556SXylle * 92*d10b5556SXylle * @param string $message 93*d10b5556SXylle * @param array $context 94*d10b5556SXylle * 95*d10b5556SXylle * @return void 96*d10b5556SXylle */ 97*d10b5556SXylle public function notice($message, array $context = array()) 98*d10b5556SXylle { 99*d10b5556SXylle $this->log(LogLevel::NOTICE, $message, $context); 100*d10b5556SXylle } 101*d10b5556SXylle 102*d10b5556SXylle /** 103*d10b5556SXylle * Interesting events. 104*d10b5556SXylle * 105*d10b5556SXylle * Example: User logs in, SQL logs. 106*d10b5556SXylle * 107*d10b5556SXylle * @param string $message 108*d10b5556SXylle * @param array $context 109*d10b5556SXylle * 110*d10b5556SXylle * @return void 111*d10b5556SXylle */ 112*d10b5556SXylle public function info($message, array $context = array()) 113*d10b5556SXylle { 114*d10b5556SXylle $this->log(LogLevel::INFO, $message, $context); 115*d10b5556SXylle } 116*d10b5556SXylle 117*d10b5556SXylle /** 118*d10b5556SXylle * Detailed debug information. 119*d10b5556SXylle * 120*d10b5556SXylle * @param string $message 121*d10b5556SXylle * @param array $context 122*d10b5556SXylle * 123*d10b5556SXylle * @return void 124*d10b5556SXylle */ 125*d10b5556SXylle public function debug($message, array $context = array()) 126*d10b5556SXylle { 127*d10b5556SXylle $this->log(LogLevel::DEBUG, $message, $context); 128*d10b5556SXylle } 129*d10b5556SXylle 130*d10b5556SXylle /** 131*d10b5556SXylle * Logs with an arbitrary level. 132*d10b5556SXylle * 133*d10b5556SXylle * @param mixed $level 134*d10b5556SXylle * @param string $message 135*d10b5556SXylle * @param array $context 136*d10b5556SXylle * 137*d10b5556SXylle * @return void 138*d10b5556SXylle * 139*d10b5556SXylle * @throws \Psr\Log\InvalidArgumentException 140*d10b5556SXylle */ 141*d10b5556SXylle abstract public function log($level, $message, array $context = array()); 142*d10b5556SXylle} 143