<?php if ( ! defined( 'ABSPATH' ) ) { exit; } if ( ! class_exists( 'WPDesk_Logger' ) ) { /** * @deprecated Only for backward compatibility. Please use injected Logger compatible with PSR */ class WPDesk_Logger { /** @var \Psr\Log\LoggerInterface */ static $logger; const EMERGENCY = 'emergency'; const ALERT = 'alert'; const CRITICAL = 'critical'; const ERROR = 'error'; const WARNING = 'warning'; const NOTICE = 'notice'; const INFO = 'info'; const DEBUG = 'debug'; public function __construct() { if (!self::$logger) { $loggerFactroy = new \WPDesk\Logger\WPDeskLoggerFactory(); self::$logger = $loggerFactroy->createWPDeskLogger(); } } /** * Level strings mapped to integer severity. * * @var array */ protected $level_to_severity = [ self::EMERGENCY => 800, self::ALERT => 700, self::CRITICAL => 600, self::ERROR => 500, self::WARNING => 400, self::NOTICE => 300, self::INFO => 200, self::DEBUG => 100, ]; /** * Attach hooks * * @return void */ public function attach_hooks() { add_action( 'plugins_loaded', [ $this, 'plugins_loaded' ] ); add_filter( 'wpdesk_logger_level_options', [ $this, 'wpdesk_logger_level_options' ] ); } public function plugins_loaded() { if ( defined( 'WC_VERSION' ) ) { if ( version_compare( WC_VERSION, '3.0', '<' ) ) { add_action( 'wpdesk_log', [ $this, 'wpdesk_log' ], 10, 4 ); } else { add_action( 'wpdesk_log', [ $this, 'wpdesk_log_30' ], 10, 4 ); } } } public function wpdesk_logger_level_options( array $options ) { return [ 'disabled' => __( 'Disabled', 'wp-logs' ), 'emergency' => __( 'Emergency', 'wp-logs' ), 'alert' => __( 'Alert', 'wp-logs' ), 'critical' => __( 'Critical', 'wp-logs' ), 'error' => __( 'Error', 'wp-logs' ), 'warning' => __( 'Warning', 'wp-logs' ), 'notice' => __( 'Notice', 'wp-logs' ), 'info' => __( 'Info', 'wp-logs' ), 'debug' => __( 'Debug', 'wp-logs' ), ]; } /** * @param string $level * @param string $source * @param string $message * @param string $settings_level */ public function wpdesk_log( $level, $source, $message, $settings_level = 'debug' ) { if ( ! isset( $this->level_to_severity[ $settings_level ] ) || ! isset( $this->level_to_severity[ $level ] ) ) { return; } if ( $this->level_to_severity[ $settings_level ] > $this->level_to_severity[ $level ] ) { return; } if ( is_array( $message ) || is_object( $message ) ) { $message = print_r( $message, true ); } self::$logger->log( $level, $message, ['source' => $source]); } public function wpdesk_log_30( $level, $source, $message, $settings_level = 'debug' ) { if ( ! isset( $this->level_to_severity[ $settings_level ] ) || ! isset( $this->level_to_severity[ $level ] ) ) { return; } if ( $this->level_to_severity[ $settings_level ] > $this->level_to_severity[ $level ] ) { return; } if ( is_array( $message ) || is_object( $message ) ) { $message = print_r( $message, true ); } self::$logger->log( $level, $message, ['source' => $source]); } } }