Skip to content
Snippets Groups Projects
Commit 1cb5b1b1 authored by dyszczo's avatar dyszczo
Browse files

setDisableLog changes to disableLog

parent 24fbd9e3
No related branches found
No related tags found
1 merge request!7setDisableLog changes to disableLog
Pipeline #6178 passed
[1.2.0] - 2018-10-29 ## [1.3.1] - 2018-10-30
## ### Changed
- changed
## [1.2.0] - 2018-10-29
### Changed ### Changed
- getWPDeskFileName renamed to getFileName - getWPDeskFileName renamed to getFileName
- isWPDeskLogWorking renamed to isLogWorking - isWPDeskLogWorking renamed to isLogWorking
......
<?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
...@@ -48,13 +48,11 @@ class LoggerFacade ...@@ -48,13 +48,11 @@ class LoggerFacade
/** /**
* If set, logs are disabled * If set, logs are disabled
* *
* @param bool $flag
* @param string $name Name of the logger * @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->disableLog($name);
self::$factory->setDisableLog($flag);
} }
......
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
namespace WPDesk\Logger; namespace WPDesk\Logger;
use Monolog\Handler\AbstractHandler; use Monolog\Handler\AbstractHandler;
use Monolog\Handler\NullHandler;
use Monolog\Logger; use Monolog\Logger;
use Monolog\Registry; use Monolog\Registry;
use Monolog\ErrorHandler; use Monolog\ErrorHandler;
...@@ -39,22 +40,18 @@ class WPDeskLoggerFactory extends BasicLoggerFactory ...@@ -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 * @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)) { if (!Registry::hasLogger($name)) {
$this->createWPDeskLogger($name); $this->createWPDeskLogger($name);
} }
/** @var Logger $logger */ /** @var Logger $logger */
$logger = Registry::getInstance($name); $logger = Registry::getInstance($name);
$this->removeAllHandlers($logger);
/** @var BooleanFilter $filter */
$filter = $this->findHandlerByClass($logger, BooleanFilter::class);
$filter->setDisable($flag);
} }
/** /**
...@@ -88,7 +85,6 @@ class WPDeskLoggerFactory extends BasicLoggerFactory ...@@ -88,7 +85,6 @@ class WPDeskLoggerFactory extends BasicLoggerFactory
} catch (\Exception $e) { } catch (\Exception $e) {
$logger->emergency('File log could not be written.'); $logger->emergency('File log could not be written.');
} }
$logger->pushHandler(new BooleanFilter());
return $logger; return $logger;
} }
...@@ -139,7 +135,8 @@ class WPDeskLoggerFactory extends BasicLoggerFactory ...@@ -139,7 +135,8 @@ class WPDeskLoggerFactory extends BasicLoggerFactory
* *
* @deprecated * @deprecated
*/ */
public function getWPDeskFileName() { public function getWPDeskFileName()
{
return $this->getFileName(); return $this->getFileName();
} }
...@@ -156,22 +153,21 @@ class WPDeskLoggerFactory extends BasicLoggerFactory ...@@ -156,22 +153,21 @@ class WPDeskLoggerFactory extends BasicLoggerFactory
} }
/** /**
* Find handler in logger * Removes all handlers from logger
* *
* @param Logger $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) { try {
/** @var AbstractHandler $handle */ while (true) {
if (is_a($handle, $class)) { $logger->popHandler();
return $handle;
} }
} catch (\LogicException $e) {
$logger->pushHandler(new NullHandler());
} }
return null;
} }
/** /**
......
...@@ -8,17 +8,19 @@ use WPDesk\Logger\WPDeskLoggerFactory; ...@@ -8,17 +8,19 @@ use WPDesk\Logger\WPDeskLoggerFactory;
class TestWPDeskLoggerFactory extends WP_UnitTestCase class TestWPDeskLoggerFactory extends WP_UnitTestCase
{ {
const LOGGER_NAME = 'somerandomname';
public function tearDown() public function tearDown()
{ {
parent::tearDown(); parent::tearDown();
WPDeskLoggerFactory::tearDown(); WPDeskLoggerFactory::tearDown(self::LOGGER_NAME);
} }
public function testCanCreateLogger() public function testCanCreateLogger()
{ {
$factory = new WPDeskLoggerFactory(); $factory = new WPDeskLoggerFactory();
$this->assertInstanceOf(Logger::class, $factory->createWPDeskLogger(), "Logger should be created"); $this->assertInstanceOf(Logger::class, $factory->createWPDeskLogger(self::LOGGER_NAME), "Logger should be created");
$this->assertTrue($factory->isLogWorking()); $this->assertTrue($factory->isLogWorking(self::LOGGER_NAME));
} }
public function testWCIsNotCorruptedByOtherTests() public function testWCIsNotCorruptedByOtherTests()
...@@ -37,7 +39,7 @@ class TestWPDeskLoggerFactory extends WP_UnitTestCase ...@@ -37,7 +39,7 @@ class TestWPDeskLoggerFactory extends WP_UnitTestCase
$someMessage = 'whatever'; $someMessage = 'whatever';
$errorType = E_USER_NOTICE; $errorType = E_USER_NOTICE;
$logger = (new WPDeskLoggerFactory())->createWPDeskLogger(); $logger = (new WPDeskLoggerFactory())->createWPDeskLogger(self::LOGGER_NAME);
$logger->pushHandler($this->prepareListenHandleThatIsWaitingForMessage('E_USER_NOTICE: ' . $someMessage)); $logger->pushHandler($this->prepareListenHandleThatIsWaitingForMessage('E_USER_NOTICE: ' . $someMessage));
$this->expectException(Notice::class); $this->expectException(Notice::class);
trigger_error($someMessage, $errorType); trigger_error($someMessage, $errorType);
...@@ -74,7 +76,7 @@ class TestWPDeskLoggerFactory extends WP_UnitTestCase ...@@ -74,7 +76,7 @@ class TestWPDeskLoggerFactory extends WP_UnitTestCase
public function testOurLogsGetAllMessagesLoggedToWC() public function testOurLogsGetAllMessagesLoggedToWC()
{ {
$someMessage = 'whatever'; $someMessage = 'whatever';
$logger = (new WPDeskLoggerFactory())->createWPDeskLogger(); $logger = (new WPDeskLoggerFactory())->createWPDeskLogger(self::LOGGER_NAME);
$logger->pushHandler($this->prepareListenHandleThatIsWaitingForMessage($someMessage)); $logger->pushHandler($this->prepareListenHandleThatIsWaitingForMessage($someMessage));
wc_get_logger()->debug($someMessage); wc_get_logger()->debug($someMessage);
...@@ -83,7 +85,7 @@ class TestWPDeskLoggerFactory extends WP_UnitTestCase ...@@ -83,7 +85,7 @@ class TestWPDeskLoggerFactory extends WP_UnitTestCase
public function testLoggerWorksAndCanLogInGeneral() public function testLoggerWorksAndCanLogInGeneral()
{ {
$someMessage = 'whatever'; $someMessage = 'whatever';
$logger = (new WPDeskLoggerFactory())->createWPDeskLogger(); $logger = (new WPDeskLoggerFactory())->createWPDeskLogger(self::LOGGER_NAME);
$logger->pushHandler($this->prepareListenHandleThatIsWaitingForMessage($someMessage)); $logger->pushHandler($this->prepareListenHandleThatIsWaitingForMessage($someMessage));
$logger->debug($someMessage); $logger->debug($someMessage);
...@@ -94,12 +96,12 @@ class TestWPDeskLoggerFactory extends WP_UnitTestCase ...@@ -94,12 +96,12 @@ class TestWPDeskLoggerFactory extends WP_UnitTestCase
$someMessage = 'whatever'; $someMessage = 'whatever';
$factory = new WPDeskLoggerFactory(); $factory = new WPDeskLoggerFactory();
$logFilename = $factory->getFileName(); $logFilename = $factory->getFileName(self::LOGGER_NAME);
unlink($logFilename); @unlink($logFilename);
$this->assertFileNotExists($logFilename); $this->assertFileNotExists($logFilename);
$logger = $factory->createWPDeskLogger(); $logger = $factory->createWPDeskLogger(self::LOGGER_NAME);
$logger->debug($someMessage); $logger->debug($someMessage);
$this->assertFileExists($logFilename); $this->assertFileExists($logFilename);
} }
...@@ -117,15 +119,15 @@ class TestWPDeskLoggerFactory extends WP_UnitTestCase ...@@ -117,15 +119,15 @@ class TestWPDeskLoggerFactory extends WP_UnitTestCase
}, 0, 100); }, 0, 100);
$someMessage = 'whatever'; $someMessage = 'whatever';
$logger = (new WPDeskLoggerFactory())->createWPDeskLogger(); $logger = (new WPDeskLoggerFactory())->createWPDeskLogger(self::LOGGER_NAME);
$logger->debug($someMessage); $logger->debug($someMessage);
} }
public function testDisable() { public function testDisable() {
$factory = new WPDeskLoggerFactory(); $factory = new WPDeskLoggerFactory();
$logger = $factory->createWPDeskLogger(); $logger = $factory->createWPDeskLogger(self::LOGGER_NAME);
$factory->setDisableLog(true); $factory->disableLog(self::LOGGER_NAME);
$listenHandle = $this->createMock(AbstractHandler::class); $listenHandle = $this->createMock(AbstractHandler::class);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment