geno/wp-content/plugins/woocommerce/includes/class-wc-log-levels.php
2024-02-01 11:54:18 +00:00

125 lines
3 KiB
PHP

<?php
/**
* Standard log levels
*
* @version 3.2.0
* @package WooCommerce\Classes
*/
defined( 'ABSPATH' ) || exit;
/**
* Log levels class.
*/
abstract class WC_Log_Levels {
/**
* Log Levels
*
* Description of levels:
* 'emergency': System is unusable.
* 'alert': Action must be taken immediately.
* 'critical': Critical conditions.
* 'error': Error conditions.
* 'warning': Warning conditions.
* 'notice': Normal but significant condition.
* 'info': Informational messages.
* 'debug': Debug-level messages.
*
* @see @link {https://tools.ietf.org/html/rfc5424}
*/
const EMERGENCY = 'emergency';
const ALERT = 'alert';
const CRITICAL = 'critical';
const ERROR = 'error';
const WARNING = 'warning';
const NOTICE = 'notice';
const INFO = 'info';
const DEBUG = 'debug';
/**
* Level strings mapped to integer severity.
*
* @var array
*/
protected static $level_to_severity = array(
self::EMERGENCY => 800,
self::ALERT => 700,
self::CRITICAL => 600,
self::ERROR => 500,
self::WARNING => 400,
self::NOTICE => 300,
self::INFO => 200,
self::DEBUG => 100,
);
/**
* Severity integers mapped to level strings.
*
* This is the inverse of $level_severity.
*
* @var array
*/
protected static $severity_to_level = array(
800 => self::EMERGENCY,
700 => self::ALERT,
600 => self::CRITICAL,
500 => self::ERROR,
400 => self::WARNING,
300 => self::NOTICE,
200 => self::INFO,
100 => self::DEBUG,
);
/**
* Validate a level string.
*
* @param string $level Log level.
* @return bool True if $level is a valid level.
*/
public static function is_valid_level( $level ) {
return array_key_exists( strtolower( $level ), self::$level_to_severity );
}
/**
* Translate level string to integer.
*
* @param string $level Log level, options: emergency|alert|critical|error|warning|notice|info|debug.
* @return int 100 (debug) - 800 (emergency) or 0 if not recognized
*/
public static function get_level_severity( $level ) {
return self::is_valid_level( $level ) ? self::$level_to_severity[ strtolower( $level ) ] : 0;
}
/**
* Get an associative array with `level name => numerical severity` key/value pairs.
*
* @return int[]
*/
public static function get_all_level_severities() {
return self::$level_to_severity;
}
/**
* Translate severity integer to level string.
*
* @param int $severity Severity level.
* @return bool|string False if not recognized. Otherwise string representation of level.
*/
public static function get_severity_level( $severity ) {
if ( ! array_key_exists( $severity, self::$severity_to_level ) ) {
return false;
}
return self::$severity_to_level[ $severity ];
}
/**
* Get an associative array with `numerical severity => level name` key/value pairs.
*
* @return string[]
*/
public static function get_all_severity_levels() {
return self::$severity_to_level;
}
}