mirror of
https://github.com/Seldaek/monolog.git
synced 2025-08-06 05:07:36 +02:00
Add possibility to pass handlers/processors to Logger::__construct, fixes #157
This commit is contained in:
@@ -99,16 +99,27 @@ class Logger implements LoggerInterface
|
|||||||
*
|
*
|
||||||
* @var array of Monolog\Handler\HandlerInterface
|
* @var array of Monolog\Handler\HandlerInterface
|
||||||
*/
|
*/
|
||||||
protected $handlers = array();
|
protected $handlers;
|
||||||
|
|
||||||
protected $processors = array();
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string $name The logging channel
|
* Processors that will process all log records
|
||||||
|
*
|
||||||
|
* To process records of a single handler instead, add the processor on that specific handler
|
||||||
|
*
|
||||||
|
* @var array of callables
|
||||||
*/
|
*/
|
||||||
public function __construct($name)
|
protected $processors;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param string $name The logging channel
|
||||||
|
* @param array $handlers Optional stack of handlers, the first one in the array is called first, etc.
|
||||||
|
* @param array $processors Optional array of processors
|
||||||
|
*/
|
||||||
|
public function __construct($name, array $handlers = array(), array $processors = array())
|
||||||
{
|
{
|
||||||
$this->name = $name;
|
$this->name = $name;
|
||||||
|
$this->handlers = $handlers;
|
||||||
|
$this->processors = $processors;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -85,6 +85,26 @@ class LoggerTest extends \PHPUnit_Framework_TestCase
|
|||||||
$this->assertFalse($logger->addWarning('test'));
|
$this->assertFalse($logger->addWarning('test'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testHandlersInCtor()
|
||||||
|
{
|
||||||
|
$handler1 = new TestHandler;
|
||||||
|
$handler2 = new TestHandler;
|
||||||
|
$logger = new Logger(__METHOD__, array($handler1, $handler2));
|
||||||
|
|
||||||
|
$this->assertEquals($handler1, $logger->popHandler());
|
||||||
|
$this->assertEquals($handler2, $logger->popHandler());
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testProcessorsInCtor()
|
||||||
|
{
|
||||||
|
$processor1 = new WebProcessor;
|
||||||
|
$processor2 = new WebProcessor;
|
||||||
|
$logger = new Logger(__METHOD__, array(), array($processor1, $processor2));
|
||||||
|
|
||||||
|
$this->assertEquals($processor1, $logger->popProcessor());
|
||||||
|
$this->assertEquals($processor2, $logger->popProcessor());
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @covers Monolog\Logger::pushHandler
|
* @covers Monolog\Logger::pushHandler
|
||||||
* @covers Monolog\Logger::popHandler
|
* @covers Monolog\Logger::popHandler
|
||||||
|
Reference in New Issue
Block a user