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