Skip to content
Snippets Groups Projects
Select Git revision
  • bb9147ff8a845aef33ab834fed91879641b03423
  • main default protected
  • 1.1.6
  • 1.1.5
  • 1.1.4
  • 1.1.3
  • 1.1.2
  • 1.1.1
  • 1.1.0
  • 1.0.1
  • 1.0.0
11 results

LOG.old

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);
        }
    
        /**
         * Log message into WPDesk logger
         *
         * @param string $message Message to log.
         * @param array $context Context to log
         * @param string $source Source of the message - can be file name, class name or whatever.
         * @param string $level Level of error.
         */
        public static function log_message(
            $message,
            array $context = array(),
            $source = 'unknown',
            $level = LogLevel::DEBUG
        ) {
            $logger = self::getLogger();
    
            $logger->log($level, $message, array_merge($context, ['source' => $source]));
        }
    
        /**
         * Log message into WPDesk logger
         *
         * @param string $message Message to log.
         * @param array $backtrace Backtrace information with snapshot of error env.
         * @param string $level Level of error.
         */
        public static function log_message_backtrace($message, array $backtrace, $level = LogLevel::DEBUG)
        {
            $message .= ' Backtrace: ' . json_encode($backtrace);
    
            self::log_message($message, $backtrace[self::BACKTRACE_FILENAME_KEY], $level);
        }
    }