xref: /plugin/dw2pdf/vendor/psr/log/Psr/Log/LoggerTrait.php (revision dc4d9dc689082c963d5c1d9ee679553326788c6e)
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