1
0
mirror of https://github.com/Seldaek/monolog.git synced 2025-08-08 14:16:42 +02:00

Added the NoopHandler.

This handler handles anything, but does nothing, and does not stop bubbling to the rest of the stack.

This can be used for testing, or to disable a handler when overriding a configuration without influencing the rest of the stack.
This commit is contained in:
Roel Harbers
2016-10-12 16:28:10 +02:00
parent 58544af7ff
commit 7284f7d9dc
3 changed files with 103 additions and 0 deletions

View File

@@ -113,6 +113,8 @@
to the wrapped handler. to the wrapped handler.
- [_SamplingHandler_](../src/Monolog/Handler/SamplingHandler.php): Wraps around another handler and lets you sample records - [_SamplingHandler_](../src/Monolog/Handler/SamplingHandler.php): Wraps around another handler and lets you sample records
if you only want to store some of them. if you only want to store some of them.
- [_NoopHandler_](../src/Monolog/Handler/NoopHandler.php): This handler handles anything by doing nothing. It does not stop
processing the rest of the stack. This can be used for testing, or to disable a handler when overriding a configuration.
- [_NullHandler_](../src/Monolog/Handler/NullHandler.php): Any record it can handle will be thrown away. This can be used - [_NullHandler_](../src/Monolog/Handler/NullHandler.php): Any record it can handle will be thrown away. This can be used
to put on top of an existing handler stack to disable it temporarily. to put on top of an existing handler stack to disable it temporarily.
- [_PsrHandler_](../src/Monolog/Handler/PsrHandler.php): Can be used to forward log records to an existing PSR-3 logger - [_PsrHandler_](../src/Monolog/Handler/PsrHandler.php): Can be used to forward log records to an existing PSR-3 logger

View File

@@ -0,0 +1,42 @@
<?php declare(strict_types=1);
/*
* This file is part of the Monolog package.
*
* (c) Roel Harbers <roelharbers@gmail.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Monolog\Handler;
use Monolog\Logger;
/**
* No-op
*
* This handler handles anything, but does nothing, and does not stop bubbling to the rest of the stack.
* This can be used for testing, or to disable a handler when overriding a configuration without
* influencing the rest of the stack.
*
* @author Roel Harbers <roelharbers@gmail.com>
*/
class NoopHandler extends Handler
{
/**
* {@inheritdoc}
*/
public function isHandling(array $record): bool
{
return true;
}
/**
* {@inheritdoc}
*/
public function handle(array $record): bool
{
return false;
}
}

View File

@@ -0,0 +1,59 @@
<?php declare(strict_types=1);
/*
* This file is part of the Monolog package.
*
* (c) Roel Harbers <roelharbers@gmail.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Monolog\Handler;
use Monolog\Test\TestCase;
use Monolog\Logger;
/**
* @covers Monolog\Handler\NoopHandler::handle
*/
class NoopHandlerTest extends TestCase
{
/**
* @dataProvider logLevelsProvider
*/
public function testIsHandling($level)
{
$handler = new NoopHandler();
$this->assertTrue($handler->isHandling($this->getRecord($level)));
}
public function isHandleProvider()
{
return array_map(
function ($level) {
return [$level];
},
array_values(Logger::getLevels())
);
}
/**
* @dataProvider logLevelsProvider
*/
public function testHandle($level)
{
$handler = new NoopHandler();
$this->assertFalse($handler->handle($this->getRecord($level)));
}
public function logLevelsProvider()
{
return array_map(
function ($level) {
return [$level];
},
array_values(Logger::getLevels())
);
}
}