PluginProbe ʕ •ᴥ•ʔ
Weight Based Shipping Table Rate for WooCommerce – Flexible Shipping / 6.11.0
Weight Based Shipping Table Rate for WooCommerce – Flexible Shipping v6.11.0
6.12.1 6.12.0 6.11.0 6.10.0 6.9.1 6.9.0 6.8.1 6.8.0 6.7.4 6.7.3 6.7.2 6.7.0 4.21.7 4.22.0 4.22.1 4.23.0 4.23.1 4.23.2 4.23.3 4.24.0 4.24.1 4.24.10 4.24.11 4.24.12 4.24.13 4.24.14 4.24.15 4.24.16 4.24.17 4.24.18 4.24.19 4.24.2 4.24.4 4.24.6 4.24.7 4.24.8 4.24.9 4.25.0 4.25.1 4.25.2 4.25.4 4.25.5 4.25.6 4.25.7 4.25.8 4.3.0 4.3.1 4.4.0 4.4.1 4.5.0 4.5.1 4.6.0 4.6.1 4.7.0 4.7.1 4.7.2 4.8.0 4.8.1 4.8.3 4.8.4 4.8.5 4.9.0 5.0.0 5.0.1 5.0.2 5.0.3 5.0.4 5.0.5 5.0.6 5.0.7 5.0.8 5.0.9 5.1.0 5.1.1 5.1.2 5.1.3 5.2.0 5.3.0 5.3.1 5.3.3 5.3.4 5.3.5 6.0.0 6.1.0 6.1.1 6.1.2 6.2.0 6.2.1 6.2.2 6.2.3 6.2.4 6.3.0 trunk 6.4.0 1.4 6.4.1 1.4.1 6.4.2 1.5 6.4.3 1.6 6.4.5 1.6.1 6.5.0 1.6.2 6.5.1 1.7 6.5.2 1.8 6.5.3 1.9 6.5.4 1.9.1 6.5.5 1.9.10 6.5.6 1.9.11 6.5.7 1.9.12 6.5.8 1.9.2 6.6.0 1.9.3 6.6.1 1.9.4 6.6.2 1.9.5 1.9.6 1.9.7 1.9.8 1.9.9 2.0 2.0.1 2.1 2.1.1 2.1.10 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 3.0.6 3.0.7 3.1 3.1.1 3.1.10 3.1.11 3.1.12 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8 3.1.9 3.10.0 3.11.0 3.11.1 3.11.2 3.11.3 3.11.4 3.12.0 3.13.0 3.14.0 3.14.1 3.14.2 3.14.3 3.14.4 3.15.0 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.2.0 3.3.1 3.3.10 3.3.11 3.3.12 3.3.13 3.3.14 3.3.2 3.3.3 3.3.4 3.3.5 3.3.6 3.3.7 3.3.8 3.3.9 3.4.0 3.5.0 3.5.1 3.6.0 3.6.1 3.6.2 3.6.3 3.6.4 3.7.0 3.8.0 3.9.0 3.9.1 3.9.10 3.9.11 3.9.12 3.9.13 3.9.15 3.9.16 3.9.17 3.9.18 3.9.19 3.9.2 3.9.20 3.9.21 3.9.3 3.9.4 3.9.5 3.9.6 3.9.7 3.9.9 4.0.0 4.0.1 4.0.10 4.0.2 4.0.3 4.0.4 4.0.5 4.0.6 4.0.7 4.0.8 4.0.9 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4 4.10.0 4.10.1 4.11.0 4.11.1 4.11.2 4.11.3 4.11.4 4.11.5 4.11.6 4.11.7 4.11.8 4.11.9 4.12.0 4.13.0 4.13.1 4.13.2 4.13.3 4.14.0 4.14.1 4.14.2 4.15.0 4.16.0 4.16.1 4.16.2 4.17.0 4.18.0 4.18.1 4.18.2 4.18.3 4.18.4 4.18.5 4.18.6 4.19.0 4.19.1 4.2.0 4.20.0 4.20.1 4.20.2 4.20.3 4.21.0 4.21.1 4.21.2 4.21.3 4.21.4 4.21.5
flexible-shipping / vendor_prefixed / wpdesk / wp-logs / src / WPDeskLoggerFactory.php
flexible-shipping / vendor_prefixed / wpdesk / wp-logs / src Last commit date
Processor 2 weeks ago WC 2 weeks ago WP 2 weeks ago deprecated 2 weeks ago BasicLoggerFactory.php 2 weeks ago LoggerFacade.php 2 weeks ago LoggerFactory.php 2 weeks ago Settings.php 2 weeks ago SimpleLoggerFactory.php 2 weeks ago WPDeskLoggerFactory.php 2 weeks ago
WPDeskLoggerFactory.php
212 lines
1 <?php
2
3 namespace FSVendor\WPDesk\Logger;
4
5 use Exception;
6 use InvalidArgumentException;
7 use LogicException;
8 use FSVendor\Monolog\Handler\NullHandler;
9 use FSVendor\Monolog\Logger;
10 use FSVendor\Monolog\Registry;
11 use FSVendor\Monolog\Handler\StreamHandler;
12 use FSVendor\Psr\Log\LogLevel;
13 use FSVendor\WPDesk\Logger\WC\WooCommerceCapture;
14 use FSVendor\WPDesk\Logger\WP\WPCapture;
15 /**
16 * Manages and facilitates creation of logger
17 *
18 * @deprecated 1.13.0 Creates shared log file, which is discouraged. Prefer using {@see SimpleLoggerFactory}.
19 *
20 * @package WPDesk\Logger
21 */
22 class WPDeskLoggerFactory extends BasicLoggerFactory
23 {
24 const DEFAULT_LOGGER_CHANNEL_NAME = 'wpdesk';
25 /** @var string Log to file when level is */
26 const LEVEL_WPDESK_FILE = LogLevel::DEBUG;
27 /** @var string Log to wc logger when level is */
28 const LEVEL_WC = LogLevel::ERROR;
29 /** @var bool Will factory return null logger or not */
30 public static $shouldLoggerBeActivated = \true;
31 /**
32 * Remove static instances. In general should be use only testing purposes.
33 *
34 * @param string $name Name of the logger
35 */
36 public static function tearDown($name = self::DEFAULT_LOGGER_CHANNEL_NAME)
37 {
38 if (Registry::hasLogger($name)) {
39 Registry::removeLogger($name);
40 }
41 }
42 /**
43 * Disable logger. Still exists but logs won't be saved
44 *
45 * @param string $name Name of the logger
46 */
47 public function disableLog($name = self::DEFAULT_LOGGER_CHANNEL_NAME)
48 {
49 if (!Registry::hasLogger($name)) {
50 $this->createWPDeskLogger($name);
51 }
52 if (Registry::hasLogger($name)) {
53 /** @var Logger $logger */
54 $logger = Registry::getInstance($name);
55 $this->removeAllHandlers($logger);
56 }
57 }
58 /**
59 * Creates default WPDesk logger.
60 *
61 * Requirements:
62 * - get_option, add/remove_action, add/remove filter and WP_CONTENT_DIR should be available for logger.
63 *
64 * Assumptions:
65 * - logger is actively working when 'wpdesk_helper_options' has 'debug_log' set to '1';
66 * - fatal errors, exception and standard errors are recorded but in a transparent way;
67 * - WooCommerce logger is captured and returns this logger; That is true of default logger is instantiated.
68 * - logs are still correctly written to WooCommerce subsystem in a transparent way;
69 * - all recorded errors are written to WPDesk file.
70 *
71 * @param string $name Name of the logger
72 * @return Logger
73 */
74 public function createWPDeskLogger($name = self::DEFAULT_LOGGER_CHANNEL_NAME)
75 {
76 if (!self::$shouldLoggerBeActivated) {
77 return new Logger($name);
78 }
79 if (Registry::hasLogger($name)) {
80 return Registry::getInstance($name);
81 }
82 $logger = $this->createLogger($name);
83 if (self::isWPLogPermitted()) {
84 $this->appendMainLog($logger);
85 }
86 if ($name !== self::DEFAULT_LOGGER_CHANNEL_NAME) {
87 $this->appendFileLog($logger, $this->getFileName($name));
88 } else {
89 $this->captureWooCommerce($logger);
90 }
91 return $logger;
92 }
93 /**
94 * Is capturing the php log is permitted.
95 *
96 * @return bool
97 */
98 public static function isWPLogPermitted()
99 {
100 return apply_filters('wpdesk_is_wp_log_capture_permitted', \true);
101 }
102 /**
103 * @param $logger
104 */
105 private function appendMainLog($logger)
106 {
107 $wpCapture = $this->captureWPLog();
108 if (is_writable($wpCapture->get_log_file())) {
109 $this->appendFileLog($logger, $wpCapture->get_log_file());
110 }
111 }
112 /**
113 * @param Logger $logger
114 */
115 private function appendFileLog($logger, $filename)
116 {
117 try {
118 $this->pushFileHandle($filename, $logger);
119 } catch (InvalidArgumentException $e) {
120 $logger->emergency('Main log file could not be created - invalid filename.');
121 } catch (Exception $e) {
122 $logger->emergency('Main log file could not be written.');
123 }
124 }
125 /**
126 * @return WPCapture
127 */
128 private function captureWPLog()
129 {
130 static $wpCapture;
131 if (!$wpCapture) {
132 $wpCapture = new WPCapture(basename($this->getFileName()));
133 $wpCapture->init_debug_log_file();
134 }
135 return $wpCapture;
136 }
137 /**
138 * Capture WooCommerce and add handle
139 *
140 * @param Logger $logger
141 */
142 private function captureWooCommerce(Logger $logger)
143 {
144 if (!defined('FSVendor\WC_LOG_THRESHOLD')) {
145 define('FSVendor\WC_LOG_THRESHOLD', self::LEVEL_WC);
146 }
147 $wcIntegration = new WooCommerceCapture($logger);
148 $wcIntegration->captureWcLogger();
149 }
150 /**
151 * Add WPDesk log file handle
152 *
153 * @param Logger $logger
154 * @param string $filename Name of file with path
155 *
156 * @throws Exception If a missing directory is not buildable
157 * @throws InvalidArgumentException If stream is not a resource or string
158 */
159 private function pushFileHandle($filename, Logger $logger)
160 {
161 $logger->pushHandler(new StreamHandler($filename, self::LEVEL_WPDESK_FILE));
162 }
163 /**
164 * Get filename old way
165 *
166 * @deprecated not sure if can remove
167 */
168 public function getWPDeskFileName()
169 {
170 return $this->getFileName();
171 }
172 /**
173 * Returns WPDesk filename.
174 *
175 * @param string $name Name of the logger
176 *
177 * @return string
178 */
179 public function getFileName($name = self::DEFAULT_LOGGER_CHANNEL_NAME)
180 {
181 $upload_dir = wp_upload_dir();
182 return trailingslashit(untrailingslashit($upload_dir['basedir'])) . WPCapture::LOG_DIR . \DIRECTORY_SEPARATOR . $name . '_debug.log';
183 }
184 /**
185 * Removes all handlers from logger
186 *
187 * @param Logger $logger
188 *
189 * @return void
190 */
191 private function removeAllHandlers(Logger $logger)
192 {
193 try {
194 while (\true) {
195 $logger->popHandler();
196 }
197 } catch (LogicException $e) {
198 $logger->pushHandler(new NullHandler());
199 }
200 }
201 /**
202 * is WPDesk file log is working(writable, exists, connected).
203 * @param string $name Name of the logger
204 *
205 * @return bool
206 */
207 public function isLogWorking($name = self::DEFAULT_LOGGER_CHANNEL_NAME)
208 {
209 return Registry::hasLogger($name);
210 }
211 }
212