atch (\Exception $e) { $logger->emergency('Main log file could not be written.'); } } /** * @return WPCapture */ private function captureWPLog() { static $wpCapture; if (!$wpCapture) { $wpCapture = new \FSVendor\WPDesk\Logger\WP\WPCapture(\basename($this->getFileName())); $wpCapture->init_debug_log_file(); } return $wpCapture; } /** * Capture WooCommerce and add handle * * @param Logger $logger */ private function captureWooCommerce(\FSVendor\Monolog\Logger $logger) { if (!\defined('FSVendor\\WC_LOG_THRESHOLD')) { \define('FSVendor\\WC_LOG_THRESHOLD', self::LEVEL_WC); } $wcIntegration = new \FSVendor\WPDesk\Logger\WC\WooCommerceCapture($logger); $wcIntegration->captureWcLogger(); } /** * Add WPDesk log file handle * * @param Logger $logger * @param string $filename Name of file with path * * @throws Exception If a missing directory is not buildable * @throws InvalidArgumentException If stream is not a resource or string */ private function pushFileHandle($filename, \FSVendor\Monolog\Logger $logger) { $logger->pushHandler(new \FSVendor\Monolog\Handler\StreamHandler($filename, self::LEVEL_WPDESK_FILE)); } /** * Get filename old way * * @deprecated not sure if can remove */ public function getWPDeskFileName() { return $this->getFileName(); } /** * Returns WPDesk filename. * * @param string $name Name of the logger * * @return string */ public function getFileName($name = self::DEFAULT_LOGGER_CHANNEL_NAME) { $upload_dir = \wp_upload_dir(); return \trailingslashit(\untrailingslashit($upload_dir['basedir'])) . \FSVendor\WPDesk\Logger\WP\WPCapture::LOG_DIR . \DIRECTORY_SEPARATOR . $name . '_debug.log'; } /** * Removes all handlers from logger * * @param Logger $logger * * @return void */ private function removeAllHandlers(\FSVendor\Monolog\Logger $logger) { try { while (\true) { $logger->popHandler(); } } catch (\LogicException $e) { $logger->pushHandler(new \FSVendor\Monolog\Handler\NullHandler()); } } /** * is WPDesk file log is working(writable, exists, connected). * @param string $name Name of the logger * * @return bool */ public function isLogWorking($name = self::DEFAULT_LOGGER_CHANNEL_NAME) { return \FSVendor\Monolog\Registry::hasLogger($name); } }