diff --git a/CHANGELOG.md b/CHANGELOG.md index c10236d2073ca8fa8ba06ca077f58d10e4730eb2..2a8430a5335a2af59577ebff543064b129a3c80d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ -[1.2.0] - 2018-10-29 -## +## [1.3.1] - 2018-10-30 +### Changed +- changed + +## [1.2.0] - 2018-10-29 ### Changed - getWPDeskFileName renamed to getFileName - isWPDeskLogWorking renamed to isLogWorking diff --git a/src/Filter/BooleanFilter.php b/src/Filter/BooleanFilter.php deleted file mode 100644 index 80606afa9284f18cf0f1a087cac451780cba7482..0000000000000000000000000000000000000000 --- a/src/Filter/BooleanFilter.php +++ /dev/null @@ -1,46 +0,0 @@ -<?php - -namespace WPDesk\Logger\Filter; - -use Monolog\Handler\AbstractHandler; -use Monolog\Logger; - -/** - * Can disable or enable logging for logger - * - * @package WPDesk\Logger - */ -class BooleanFilter extends AbstractHandler -{ - /** @var bool */ - private $disable = false; - - /** - * BooleanFilter constructor. - * @param bool $disable - */ - public function __construct($disable = false) - { - parent::__construct(Logger::DEBUG, !$disable); - $this->setDisable($disable); - } - - /** - * @param bool $bool - */ - public function setDisable($bool) { - $this->disable = $bool; - $this->bubble = !$bool; - } - - public function handle(array $record) - { - return $this->disable; - } - - public function isHandling(array $record) - { - return false; - } - -} \ No newline at end of file diff --git a/src/LoggerFacade.php b/src/LoggerFacade.php index 6cf9239883cd8ecb8f57db30f66c07059fae44cb..accb35bfcaf6b699dec9738f391ca2564d158c20 100644 --- a/src/LoggerFacade.php +++ b/src/LoggerFacade.php @@ -48,13 +48,11 @@ class LoggerFacade /** * If set, logs are disabled * - * @param bool $flag * @param string $name Name of the logger */ - public static function set_disable_log($flag, $name = WPDeskLoggerFactory::DEFAULT_LOGGER_CHANNEL_NAME) + public static function set_disable_log($name = WPDeskLoggerFactory::DEFAULT_LOGGER_CHANNEL_NAME) { - self::getLogger($name); - self::$factory->setDisableLog($flag); + self::$factory->disableLog($name); } diff --git a/src/WPDeskLoggerFactory.php b/src/WPDeskLoggerFactory.php index 0d4295e87f583dff4f213f5cc27389136a11be30..feb59a2d3298f5fd62b5e355556e18a22c880001 100644 --- a/src/WPDeskLoggerFactory.php +++ b/src/WPDeskLoggerFactory.php @@ -3,6 +3,7 @@ namespace WPDesk\Logger; use Monolog\Handler\AbstractHandler; +use Monolog\Handler\NullHandler; use Monolog\Logger; use Monolog\Registry; use Monolog\ErrorHandler; @@ -39,22 +40,18 @@ class WPDeskLoggerFactory extends BasicLoggerFactory } /** - * If set, logs are disabled + * Disable logger. Still exists but logs won't be saved * - * @param bool $flag should be disabled? * @param string $name Name of the logger */ - public function setDisableLog($flag, $name = self::DEFAULT_LOGGER_CHANNEL_NAME) + public function disableLog($name = self::DEFAULT_LOGGER_CHANNEL_NAME) { if (!Registry::hasLogger($name)) { $this->createWPDeskLogger($name); } /** @var Logger $logger */ $logger = Registry::getInstance($name); - - /** @var BooleanFilter $filter */ - $filter = $this->findHandlerByClass($logger, BooleanFilter::class); - $filter->setDisable($flag); + $this->removeAllHandlers($logger); } /** @@ -88,7 +85,6 @@ class WPDeskLoggerFactory extends BasicLoggerFactory } catch (\Exception $e) { $logger->emergency('File log could not be written.'); } - $logger->pushHandler(new BooleanFilter()); return $logger; } @@ -139,7 +135,8 @@ class WPDeskLoggerFactory extends BasicLoggerFactory * * @deprecated */ - public function getWPDeskFileName() { + public function getWPDeskFileName() + { return $this->getFileName(); } @@ -156,22 +153,21 @@ class WPDeskLoggerFactory extends BasicLoggerFactory } /** - * Find handler in logger + * Removes all handlers from logger * * @param Logger $logger - * @param string $class Class handle to find * - * @return AbstractHandler If this is null then fatal failure is ok + * @return void */ - private function findHandlerByClass(Logger $logger, $class) + private function removeAllHandlers(Logger $logger) { - foreach ($logger->getHandlers() as $handle) { - /** @var AbstractHandler $handle */ - if (is_a($handle, $class)) { - return $handle; + try { + while (true) { + $logger->popHandler(); } + } catch (\LogicException $e) { + $logger->pushHandler(new NullHandler()); } - return null; } /** diff --git a/tests/integration/TestWPDeskLoggerFactory.php b/tests/integration/TestWPDeskLoggerFactory.php index 0131d6bf93b250a1cb87245e66a041ebd101fc52..21fc459c3c07af81c5d44d1bc67a3b00f27440a8 100644 --- a/tests/integration/TestWPDeskLoggerFactory.php +++ b/tests/integration/TestWPDeskLoggerFactory.php @@ -8,17 +8,19 @@ use WPDesk\Logger\WPDeskLoggerFactory; class TestWPDeskLoggerFactory extends WP_UnitTestCase { + const LOGGER_NAME = 'somerandomname'; + public function tearDown() { parent::tearDown(); - WPDeskLoggerFactory::tearDown(); + WPDeskLoggerFactory::tearDown(self::LOGGER_NAME); } public function testCanCreateLogger() { $factory = new WPDeskLoggerFactory(); - $this->assertInstanceOf(Logger::class, $factory->createWPDeskLogger(), "Logger should be created"); - $this->assertTrue($factory->isLogWorking()); + $this->assertInstanceOf(Logger::class, $factory->createWPDeskLogger(self::LOGGER_NAME), "Logger should be created"); + $this->assertTrue($factory->isLogWorking(self::LOGGER_NAME)); } public function testWCIsNotCorruptedByOtherTests() @@ -37,7 +39,7 @@ class TestWPDeskLoggerFactory extends WP_UnitTestCase $someMessage = 'whatever'; $errorType = E_USER_NOTICE; - $logger = (new WPDeskLoggerFactory())->createWPDeskLogger(); + $logger = (new WPDeskLoggerFactory())->createWPDeskLogger(self::LOGGER_NAME); $logger->pushHandler($this->prepareListenHandleThatIsWaitingForMessage('E_USER_NOTICE: ' . $someMessage)); $this->expectException(Notice::class); trigger_error($someMessage, $errorType); @@ -74,7 +76,7 @@ class TestWPDeskLoggerFactory extends WP_UnitTestCase public function testOurLogsGetAllMessagesLoggedToWC() { $someMessage = 'whatever'; - $logger = (new WPDeskLoggerFactory())->createWPDeskLogger(); + $logger = (new WPDeskLoggerFactory())->createWPDeskLogger(self::LOGGER_NAME); $logger->pushHandler($this->prepareListenHandleThatIsWaitingForMessage($someMessage)); wc_get_logger()->debug($someMessage); @@ -83,7 +85,7 @@ class TestWPDeskLoggerFactory extends WP_UnitTestCase public function testLoggerWorksAndCanLogInGeneral() { $someMessage = 'whatever'; - $logger = (new WPDeskLoggerFactory())->createWPDeskLogger(); + $logger = (new WPDeskLoggerFactory())->createWPDeskLogger(self::LOGGER_NAME); $logger->pushHandler($this->prepareListenHandleThatIsWaitingForMessage($someMessage)); $logger->debug($someMessage); @@ -94,12 +96,12 @@ class TestWPDeskLoggerFactory extends WP_UnitTestCase $someMessage = 'whatever'; $factory = new WPDeskLoggerFactory(); - $logFilename = $factory->getFileName(); + $logFilename = $factory->getFileName(self::LOGGER_NAME); - unlink($logFilename); + @unlink($logFilename); $this->assertFileNotExists($logFilename); - $logger = $factory->createWPDeskLogger(); + $logger = $factory->createWPDeskLogger(self::LOGGER_NAME); $logger->debug($someMessage); $this->assertFileExists($logFilename); } @@ -117,15 +119,15 @@ class TestWPDeskLoggerFactory extends WP_UnitTestCase }, 0, 100); $someMessage = 'whatever'; - $logger = (new WPDeskLoggerFactory())->createWPDeskLogger(); + $logger = (new WPDeskLoggerFactory())->createWPDeskLogger(self::LOGGER_NAME); $logger->debug($someMessage); } public function testDisable() { $factory = new WPDeskLoggerFactory(); - $logger = $factory->createWPDeskLogger(); - $factory->setDisableLog(true); + $logger = $factory->createWPDeskLogger(self::LOGGER_NAME); + $factory->disableLog(self::LOGGER_NAME); $listenHandle = $this->createMock(AbstractHandler::class);