| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142 | <?phpnamespace Psr\Log;/** * This is a simple Logger trait that classes unable to extend AbstractLogger * (because they extend another class, etc) can include. * * It simply delegates all log-level-specific methods to the `log` method to * reduce boilerplate code that a simple Logger that does the same thing with * messages regardless of the error level has to implement. */trait LoggerTrait{    /**     * System is unusable.     *     * @param string $message     * @param array  $context     *     * @return void     */    public function emergency($message, array $context = array())    {        $this->log(LogLevel::EMERGENCY, $message, $context);    }    /**     * Action must be taken immediately.     *     * Example: Entire website down, database unavailable, etc. This should     * trigger the SMS alerts and wake you up.     *     * @param string $message     * @param array  $context     *     * @return void     */    public function alert($message, array $context = array())    {        $this->log(LogLevel::ALERT, $message, $context);    }    /**     * Critical conditions.     *     * Example: Application component unavailable, unexpected exception.     *     * @param string $message     * @param array  $context     *     * @return void     */    public function critical($message, array $context = array())    {        $this->log(LogLevel::CRITICAL, $message, $context);    }    /**     * Runtime errors that do not require immediate action but should typically     * be logged and monitored.     *     * @param string $message     * @param array  $context     *     * @return void     */    public function error($message, array $context = array())    {        $this->log(LogLevel::ERROR, $message, $context);    }    /**     * Exceptional occurrences that are not errors.     *     * Example: Use of deprecated APIs, poor use of an API, undesirable things     * that are not necessarily wrong.     *     * @param string $message     * @param array  $context     *     * @return void     */    public function warning($message, array $context = array())    {        $this->log(LogLevel::WARNING, $message, $context);    }    /**     * Normal but significant events.     *     * @param string $message     * @param array  $context     *     * @return void     */    public function notice($message, array $context = array())    {        $this->log(LogLevel::NOTICE, $message, $context);    }    /**     * Interesting events.     *     * Example: User logs in, SQL logs.     *     * @param string $message     * @param array  $context     *     * @return void     */    public function info($message, array $context = array())    {        $this->log(LogLevel::INFO, $message, $context);    }    /**     * Detailed debug information.     *     * @param string $message     * @param array  $context     *     * @return void     */    public function debug($message, array $context = array())    {        $this->log(LogLevel::DEBUG, $message, $context);    }    /**     * Logs with an arbitrary level.     *     * @param mixed  $level     * @param string $message     * @param array  $context     *     * @return void     *     * @throws \Psr\Log\InvalidArgumentException     */    abstract public function log($level, $message, array $context = array());}
 |