Skip to content
Snippets Groups Projects
Select Git revision
  • 87e009193c59c70b18cb1644e271b2cc7a595374
  • master default protected
  • feat/message-handling
  • feat/request-id
  • 1.13.2
  • 1.13.1
  • 1.13.0
  • 1.12.1
  • 1.12.0
  • 1.11.0
  • 1.11.0-beta2
  • 1.11.0-beta1
  • 1.10.2
  • 1.10.1
  • 1.10.0
  • 1.9.0
  • 1.8.0
  • 1.7.4
  • 1.7.3
  • 1.7.2
  • 1.7.1
  • 1.7.0
  • 1.6.2
  • 1.6.2-beta2
24 results

LoggerFacade.php

Blame
  • LoggerFacade.php 2.85 KiB
    <?php
    
    namespace WPDesk\Logger;
    
    use Monolog\Logger;
    use Psr\Log\LogLevel;
    use WP_Error;
    use Exception;
    
    /**
     * Facilitates creation of logger with default WPDesk settings
     *
     * @package WPDesk\Logger
     */
    class LoggerFacade
    {
        const BACKTRACE_FILENAME_KEY = 'file';
    
        /** @var LoggerFactory */
        private static $factory;
    
        /**
         * @return Logger
         */
        public static function getLogger()
        {
            if (self::$factory === null) {
                self::$factory = new WPDeskLoggerFactory();
            }
            return self::$factory->createWPDeskLogger();
        }
    
        /**
         * Snake case alias for getLogger
         *
         * @return Logger
         */
        public static function get_logger()
        {
            return self::getLogger();
        }
    
        /**
         * Log this exception into WPDesk logger
         *
         * @param WP_Error $e Error to log.
         * @param array $backtrace Backtrace information with snapshot of error env.
         * @param string $level Level of error.
         *
         * @see http://php.net/manual/en/function.debug-backtrace.php
         */
        public static function log_wp_error(WP_Error $e, array $backtrace, $level = LogLevel::ERROR)
        {
            $message = 'Error: ' . get_class($e) . ' Code: ' . $e->get_error_code() . ' Message: ' . $e->get_error_message();
    
            self::log_message_backtrace($message, $backtrace, $level);
        }
    
        /**
         * Log this exception into WPDesk logger
         *
         * @param Exception $e Exception to log.
         * @param string $level Level of error.
         */
        public static function log_exception(Exception $e, $level = LogLevel::ERROR)
        {
            $message = 'Exception: ' . get_class($e) . ' Code: ' . $e->getCode() . ' Message: ' . $e->getMessage() . ' Stack: ' . $e->getTraceAsString();
    
            self::log_message($message, ['exception' => $e], $e->getFile(), $level);
        }