10119ca25SAndreas Gohr<?php 20119ca25SAndreas Gohr 30119ca25SAndreas Gohrnamespace Psr\Log; 40119ca25SAndreas Gohr 50119ca25SAndreas Gohr/** 60119ca25SAndreas Gohr * This is a simple Logger trait that classes unable to extend AbstractLogger 70119ca25SAndreas Gohr * (because they extend another class, etc) can include. 80119ca25SAndreas Gohr * 90119ca25SAndreas Gohr * It simply delegates all log-level-specific methods to the `log` method to 100119ca25SAndreas Gohr * reduce boilerplate code that a simple Logger that does the same thing with 110119ca25SAndreas Gohr * messages regardless of the error level has to implement. 120119ca25SAndreas Gohr */ 130119ca25SAndreas Gohrtrait LoggerTrait 140119ca25SAndreas Gohr{ 150119ca25SAndreas Gohr /** 160119ca25SAndreas Gohr * System is unusable. 170119ca25SAndreas Gohr * 180119ca25SAndreas Gohr * @param string $message 190119ca25SAndreas Gohr * @param array $context 200119ca25SAndreas Gohr * 210119ca25SAndreas Gohr * @return void 220119ca25SAndreas Gohr */ 230119ca25SAndreas Gohr public function emergency($message, array $context = array()) 240119ca25SAndreas Gohr { 250119ca25SAndreas Gohr $this->log(LogLevel::EMERGENCY, $message, $context); 260119ca25SAndreas Gohr } 270119ca25SAndreas Gohr 280119ca25SAndreas Gohr /** 290119ca25SAndreas Gohr * Action must be taken immediately. 300119ca25SAndreas Gohr * 310119ca25SAndreas Gohr * Example: Entire website down, database unavailable, etc. This should 320119ca25SAndreas Gohr * trigger the SMS alerts and wake you up. 330119ca25SAndreas Gohr * 340119ca25SAndreas Gohr * @param string $message 350119ca25SAndreas Gohr * @param array $context 360119ca25SAndreas Gohr * 370119ca25SAndreas Gohr * @return void 380119ca25SAndreas Gohr */ 390119ca25SAndreas Gohr public function alert($message, array $context = array()) 400119ca25SAndreas Gohr { 410119ca25SAndreas Gohr $this->log(LogLevel::ALERT, $message, $context); 420119ca25SAndreas Gohr } 430119ca25SAndreas Gohr 440119ca25SAndreas Gohr /** 450119ca25SAndreas Gohr * Critical conditions. 460119ca25SAndreas Gohr * 470119ca25SAndreas Gohr * Example: Application component unavailable, unexpected exception. 480119ca25SAndreas Gohr * 490119ca25SAndreas Gohr * @param string $message 500119ca25SAndreas Gohr * @param array $context 510119ca25SAndreas Gohr * 520119ca25SAndreas Gohr * @return void 530119ca25SAndreas Gohr */ 540119ca25SAndreas Gohr public function critical($message, array $context = array()) 550119ca25SAndreas Gohr { 560119ca25SAndreas Gohr $this->log(LogLevel::CRITICAL, $message, $context); 570119ca25SAndreas Gohr } 580119ca25SAndreas Gohr 590119ca25SAndreas Gohr /** 600119ca25SAndreas Gohr * Runtime errors that do not require immediate action but should typically 610119ca25SAndreas Gohr * be logged and monitored. 620119ca25SAndreas Gohr * 630119ca25SAndreas Gohr * @param string $message 640119ca25SAndreas Gohr * @param array $context 650119ca25SAndreas Gohr * 660119ca25SAndreas Gohr * @return void 670119ca25SAndreas Gohr */ 680119ca25SAndreas Gohr public function error($message, array $context = array()) 690119ca25SAndreas Gohr { 700119ca25SAndreas Gohr $this->log(LogLevel::ERROR, $message, $context); 710119ca25SAndreas Gohr } 720119ca25SAndreas Gohr 730119ca25SAndreas Gohr /** 740119ca25SAndreas Gohr * Exceptional occurrences that are not errors. 750119ca25SAndreas Gohr * 760119ca25SAndreas Gohr * Example: Use of deprecated APIs, poor use of an API, undesirable things 770119ca25SAndreas Gohr * that are not necessarily wrong. 780119ca25SAndreas Gohr * 790119ca25SAndreas Gohr * @param string $message 800119ca25SAndreas Gohr * @param array $context 810119ca25SAndreas Gohr * 820119ca25SAndreas Gohr * @return void 830119ca25SAndreas Gohr */ 840119ca25SAndreas Gohr public function warning($message, array $context = array()) 850119ca25SAndreas Gohr { 860119ca25SAndreas Gohr $this->log(LogLevel::WARNING, $message, $context); 870119ca25SAndreas Gohr } 880119ca25SAndreas Gohr 890119ca25SAndreas Gohr /** 900119ca25SAndreas Gohr * Normal but significant events. 910119ca25SAndreas Gohr * 920119ca25SAndreas Gohr * @param string $message 930119ca25SAndreas Gohr * @param array $context 940119ca25SAndreas Gohr * 950119ca25SAndreas Gohr * @return void 960119ca25SAndreas Gohr */ 970119ca25SAndreas Gohr public function notice($message, array $context = array()) 980119ca25SAndreas Gohr { 990119ca25SAndreas Gohr $this->log(LogLevel::NOTICE, $message, $context); 1000119ca25SAndreas Gohr } 1010119ca25SAndreas Gohr 1020119ca25SAndreas Gohr /** 1030119ca25SAndreas Gohr * Interesting events. 1040119ca25SAndreas Gohr * 1050119ca25SAndreas Gohr * Example: User logs in, SQL logs. 1060119ca25SAndreas Gohr * 1070119ca25SAndreas Gohr * @param string $message 1080119ca25SAndreas Gohr * @param array $context 1090119ca25SAndreas Gohr * 1100119ca25SAndreas Gohr * @return void 1110119ca25SAndreas Gohr */ 1120119ca25SAndreas Gohr public function info($message, array $context = array()) 1130119ca25SAndreas Gohr { 1140119ca25SAndreas Gohr $this->log(LogLevel::INFO, $message, $context); 1150119ca25SAndreas Gohr } 1160119ca25SAndreas Gohr 1170119ca25SAndreas Gohr /** 1180119ca25SAndreas Gohr * Detailed debug information. 1190119ca25SAndreas Gohr * 1200119ca25SAndreas Gohr * @param string $message 1210119ca25SAndreas Gohr * @param array $context 1220119ca25SAndreas Gohr * 1230119ca25SAndreas Gohr * @return void 1240119ca25SAndreas Gohr */ 1250119ca25SAndreas Gohr public function debug($message, array $context = array()) 1260119ca25SAndreas Gohr { 1270119ca25SAndreas Gohr $this->log(LogLevel::DEBUG, $message, $context); 1280119ca25SAndreas Gohr } 1290119ca25SAndreas Gohr 1300119ca25SAndreas Gohr /** 1310119ca25SAndreas Gohr * Logs with an arbitrary level. 1320119ca25SAndreas Gohr * 1330119ca25SAndreas Gohr * @param mixed $level 1340119ca25SAndreas Gohr * @param string $message 1350119ca25SAndreas Gohr * @param array $context 1360119ca25SAndreas Gohr * 1370119ca25SAndreas Gohr * @return void 138*dc4d9dc6SAnna Dabrowska * 139*dc4d9dc6SAnna Dabrowska * @throws \Psr\Log\InvalidArgumentException 1400119ca25SAndreas Gohr */ 1410119ca25SAndreas Gohr abstract public function log($level, $message, array $context = array()); 1420119ca25SAndreas Gohr} 143