12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Developer\Model\Logger\Handler;
- use Magento\Config\Setup\ConfigOptionsList;
- use Magento\Framework\App\Config\ScopeConfigInterface;
- use Magento\Framework\App\State;
- use Magento\Framework\Filesystem\DriverInterface;
- use Magento\Framework\App\DeploymentConfig;
- /**
- * Enable/disable debug logging based on the store config setting
- */
- class Debug extends \Magento\Framework\Logger\Handler\Debug
- {
- /**
- * @var State
- */
- private $state;
- /**
- * @var ScopeConfigInterface
- */
- private $scopeConfig;
- /**
- * @var DeploymentConfig
- */
- private $deploymentConfig;
- /**
- * @param DriverInterface $filesystem
- * @param State $state
- * @param ScopeConfigInterface $scopeConfig
- * @param DeploymentConfig $deploymentConfig
- * @param string $filePath
- * @throws \Exception
- */
- public function __construct(
- DriverInterface $filesystem,
- State $state,
- ScopeConfigInterface $scopeConfig,
- DeploymentConfig $deploymentConfig,
- $filePath = null
- ) {
- parent::__construct($filesystem, $filePath);
- $this->state = $state;
- $this->scopeConfig = $scopeConfig;
- $this->deploymentConfig = $deploymentConfig;
- }
- /**
- * @inheritdoc
- */
- public function isHandling(array $record)
- {
- if ($this->deploymentConfig->isAvailable()) {
- return
- parent::isHandling($record)
- && $this->isLoggingEnabled();
- }
- return parent::isHandling($record);
- }
- /**
- * Check that logging functionality is enabled.
- *
- * @return bool
- */
- private function isLoggingEnabled(): bool
- {
- $configValue = $this->deploymentConfig->get(ConfigOptionsList::CONFIG_PATH_DEBUG_LOGGING);
- if ($configValue === null) {
- $isEnabled = $this->state->getMode() !== State::MODE_PRODUCTION;
- } else {
- $isEnabled = (bool)$configValue;
- }
- return $isEnabled;
- }
- }
|