| @@ -9,21 +9,59 @@ | ||
| 9 | 9 | class Logger { |
| 10 | 10 | public const LEVEL_ERROR = 'error'; |
| 11 | 11 | public const LEVEL_WARN = 'warn'; |
| 12 | 12 | public const LEVEL_INFO = 'info'; |
| 13 | + public const LEVEL_DEBUG = 'debug'; | |
| 13 | 14 | |
| 15 | + public const LOG_LEVEL_PRIORITY = [ | |
| 16 | + 'debug' => 1, | |
| 17 | + 'info' => 2, | |
| 18 | + 'warn' => 3, | |
| 19 | + 'error' => 4, | |
| 20 | + ]; | |
| 21 | + | |
| 22 | + /** | |
| 23 | + * @param string $log_level | |
| 24 | + * @param $message | |
| 25 | + * | |
| 26 | + * @deprecated Use Logger::{error|warn|info|debug} instead. | |
| 27 | + * @return void | |
| 28 | + */ | |
| 14 | 29 | public static function log( string $log_level, $message ): void { |
| 30 | + if ( | |
| 31 | + defined( 'IMAGE_OPTIMIZATION_MINIMUM_LOG_LEVEL' ) && | |
| 32 | + self::LOG_LEVEL_PRIORITY[ $log_level ] < (int) IMAGE_OPTIMIZATION_MINIMUM_LOG_LEVEL | |
| 33 | + ) { | |
| 34 | + return; | |
| 35 | + } | |
| 36 | + | |
| 15 | 37 | $backtrace = debug_backtrace(); // phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_debug_backtrace |
| 16 | 38 | |
| 17 | - $class = $backtrace[1]['class'] ?? null; | |
| 18 | - $type = $backtrace[1]['type'] ?? null; | |
| 19 | - $function = $backtrace[1]['function']; | |
| 39 | + $class = $backtrace[2]['class'] ?? null; | |
| 40 | + $type = $backtrace[2]['type'] ?? null; | |
| 41 | + $function = $backtrace[2]['function']; | |
| 20 | 42 | |
| 21 | 43 | if ( $class ) { |
| 22 | - $message = '[Image Optimizer]: ' . $log_level . ' in ' . "$class$type$function()" . ': ' . $message; | |
| 44 | + $message = '[Image Optimization]: ' . $log_level . ' in ' . "$class$type$function()" . ': ' . $message; | |
| 23 | 45 | } else { |
| 24 | - $message = '[Image Optimizer]: ' . $log_level . ' in ' . "$function()" . ': ' . $message; | |
| 46 | + $message = '[Image Optimization]: ' . $log_level . ' in ' . "$function()" . ': ' . $message; | |
| 25 | 47 | } |
| 26 | 48 | |
| 27 | 49 | error_log( $message ); // phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_error_log |
| 50 | + } | |
| 51 | + | |
| 52 | + public static function debug( $message ): void { | |
| 53 | + self::log( self::LEVEL_DEBUG, $message ); | |
| 54 | + } | |
| 55 | + | |
| 56 | + public static function info( $message ): void { | |
| 57 | + self::log( self::LEVEL_INFO, $message ); | |
| 58 | + } | |
| 59 | + | |
| 60 | + public static function warn( $message ): void { | |
| 61 | + self::log( self::LEVEL_WARN, $message ); | |
| 62 | + } | |
| 63 | + | |
| 64 | + public static function error( $message ): void { | |
| 65 | + self::log( self::LEVEL_ERROR, $message ); | |
| 28 | 66 | } |
| 29 | 67 | } |