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
|
<?php /** * This file is part of the WooCommerce package. * * @package Automattic\WooCommerce\Internal\EmailEditor */
declare(strict_types = 1);
namespace Automattic\WooCommerce\Internal\EmailEditor;
use Automattic\WooCommerce\EmailEditor\Engine\Logger\Email_Editor_Logger_Interface; use WC_Log_Levels;
/** * WooCommerce logger adapter for the email editor. * * This class adapts the WooCommerce logger to work with the email editor logging interface. */ class Logger implements Email_Editor_Logger_Interface { /** * The WooCommerce logger instance. * * @var \WC_Logger_Interface */ private \WC_Logger_Interface $wc_logger;
/** * Constructor. * * @param \WC_Logger_Interface $wc_logger The WooCommerce logger instance. */ public function __construct( \WC_Logger_Interface $wc_logger ) { $this->wc_logger = $wc_logger; }
/** * Checks if the log level should be handled. * * @param string $level The log level. * @return bool Whether the log level should be handled. */ private function should_handle( string $level ): bool { /** * Controls the logging threshold for the email editor. * * @param string $threshold The log level threshold. * * @since 10.2.0 */ $logging_threshold = apply_filters( 'woocommerce_email_editor_logging_threshold', WC_Log_Levels::WARNING );
return WC_Log_Levels::get_level_severity( $logging_threshold ) <= WC_Log_Levels::get_level_severity( $level ); }
/** * Adds emergency level log message. * * @param string $message The log message. * @param array $context The log context. * @return void */ public function emergency( string $message, array $context = array() ): void { $this->log( WC_Log_Levels::EMERGENCY, $message, $context ); }
/** * Adds alert level log message. * * @param string $message The log message. * @param array $context The log context. * @return void */ public function alert( string $message, array $context = array() ): void { $this->log( WC_Log_Levels::ALERT, $message, $context ); }
/** * Adds critical level log message. * * @param string $message The log message. * @param array $context The log context. * @return void */ public function critical( string $message, array $context = array() ): void { $this->log( WC_Log_Levels::CRITICAL, $message, $context ); }
/** * Adds error level log message. * * @param string $message The log message. * @param array $context The log context. * @return void */ public function error( string $message, array $context = array() ): void { $this->log( WC_Log_Levels::ERROR, $message, $context ); }
/** * Adds warning level log message. * * @param string $message The log message. * @param array $context The log context. * @return void */ public function warning( string $message, array $context = array() ): void { $this->log( WC_Log_Levels::WARNING, $message, $context ); }
/** * Adds notice level log message. * * @param string $message The log message. * @param array $context The log context. * @return void */ public function notice( string $message, array $context = array() ): void { $this->log( WC_Log_Levels::NOTICE, $message, $context ); }
/** * Adds info level log message. * * @param string $message The log message. * @param array $context The log context. * @return void */ public function info( string $message, array $context = array() ): void { $this->log( WC_Log_Levels::INFO, $message, $context ); }
/** * Adds debug level log message. * * @param string $message The log message. * @param array $context The log context. * @return void */ public function debug( string $message, array $context = array() ): void { $this->log( WC_Log_Levels::DEBUG, $message, $context ); }
/** * Logs with an arbitrary level. * * @param string $level The log level. * @param string $message The log message. * @param array $context The log context. * @return void */ public function log( string $level, string $message, array $context = array() ): void { if ( $this->should_handle( $level ) ) { $this->wc_logger->log( $level, $message, $context ); } } }
|