/** * @param array $record */ protected function write(array $record) { if ($record['level'] >= Logger::ERROR && isset($record['context']['exception']) && $record['context']['exception'] instanceof Exception) { $this->console->logError($record['context']['exception']); return; } $this->console->log($record['formatted']); }
/** * @dataProvider dataWriteExceptions */ public function testWriteExceptions($exception, $level) { $reflectedHandler = new ReflectionClass('Jacobemerick\\MonologPqp\\PqpHandler'); $reflectedWriteMethod = $reflectedHandler->getMethod('write'); $reflectedWriteMethod->setAccessible(true); $pqpHandler = new PqpHandler(new Console()); $reflectedWriteMethod->invokeArgs($pqpHandler, array(array('level' => $level, 'context' => array('exception' => $exception)))); $expectedConsole = new Console(); $expectedConsole->logError($exception); $this->assertAttributeEquals($expectedConsole, 'console', $pqpHandler); }
public function testLogError() { $error = new Exception('Test Exception'); $console = new Console(); $console->logError($error); $store = $this->getProtectedStore($console); $log = array_pop($store); $this->assertEquals($error->getMessage(), $log['data']); $this->assertEquals($error->getFile(), $log['file']); $this->assertEquals($error->getLine(), $log['line']); $this->assertEquals('error', $log['type']); $error = new Exception('Test Exception'); $message = 'override message'; $console = new Console(); $console->logError($error, $message); $store = $this->getProtectedStore($console); $log = array_pop($store); $this->assertEquals($message, $log['data']); }