1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
|
<?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 is_string( $level ) && 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; }
/** * Get the UI label for a log level. * * @param string $level Log level, options: emergency|alert|critical|error|warning|notice|info|debug. * * @return string */ public static function get_level_label( $level ) { $labels = self::get_all_level_labels();
if ( ! array_key_exists( $level, $labels ) ) { return ''; }
return $labels[ $level ]; }
/** * Get the UI labels for all log levels. * * @return string[] */ public static function get_all_level_labels() { return array( self::EMERGENCY => __( 'Emergency', 'woocommerce' ), self::ALERT => __( 'Alert', 'woocommerce' ), self::CRITICAL => __( 'Critical', 'woocommerce' ), self::ERROR => __( 'Error', 'woocommerce' ), self::WARNING => __( 'Warning', 'woocommerce' ), self::NOTICE => __( 'Notice', 'woocommerce' ), self::INFO => __( 'Info', 'woocommerce' ), self::DEBUG => __( 'Debug', 'woocommerce' ), ); } }
|