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
- getWPDeskFileName renamed to getFileName
- 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
/**
* 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);
}
......
......@@ -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;
}
/**
......
......@@ -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);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment