1<?php
2
3namespace Psr\Log;
4
5/**
6 * Describes a logger instance.
7 *
8 * The message MUST be a string or object implementing __toString().
9 *
10 * The message MAY contain placeholders in the form: {foo} where foo
11 * will be replaced by the context data in key "foo".
12 *
13 * The context array can contain arbitrary data. The only assumption that
14 * can be made by implementors is that if an Exception instance is given
15 * to produce a stack trace, it MUST be in a key named "exception".
16 *
17 * See https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-3-logger-interface.md
18 * for the full interface specification.
19 */
20interface LoggerInterface
21{
22    /**
23     * System is unusable.
24     *
25     * @param string  $message
26     * @param mixed[] $context
27     *
28     * @return void
29     */
30    public function emergency($message, array $context = array());
31
32    /**
33     * Action must be taken immediately.
34     *
35     * Example: Entire website down, database unavailable, etc. This should
36     * trigger the SMS alerts and wake you up.
37     *
38     * @param string  $message
39     * @param mixed[] $context
40     *
41     * @return void
42     */
43    public function alert($message, array $context = array());
44
45    /**
46     * Critical conditions.
47     *
48     * Example: Application component unavailable, unexpected exception.
49     *
50     * @param string  $message
51     * @param mixed[] $context
52     *
53     * @return void
54     */
55    public function critical($message, array $context = array());
56
57    /**
58     * Runtime errors that do not require immediate action but should typically
59     * be logged and monitored.
60     *
61     * @param string  $message
62     * @param mixed[] $context
63     *
64     * @return void
65     */
66    public function error($message, array $context = array());
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 mixed[] $context
76     *
77     * @return void
78     */
79    public function warning($message, array $context = array());
80
81    /**
82     * Normal but significant events.
83     *
84     * @param string  $message
85     * @param mixed[] $context
86     *
87     * @return void
88     */
89    public function notice($message, array $context = array());
90
91    /**
92     * Interesting events.
93     *
94     * Example: User logs in, SQL logs.
95     *
96     * @param string  $message
97     * @param mixed[] $context
98     *
99     * @return void
100     */
101    public function info($message, array $context = array());
102
103    /**
104     * Detailed debug information.
105     *
106     * @param string  $message
107     * @param mixed[] $context
108     *
109     * @return void
110     */
111    public function debug($message, array $context = array());
112
113    /**
114     * Logs with an arbitrary level.
115     *
116     * @param mixed   $level
117     * @param string  $message
118     * @param mixed[] $context
119     *
120     * @return void
121     *
122     * @throws \Psr\Log\InvalidArgumentException
123     */
124    public function log($level, $message, array $context = array());
125}
126