1
0
mirror of https://github.com/Seldaek/monolog.git synced 2025-07-31 10:20:14 +02:00

Exception will be thrown if ZendMonitorHandler is instantiated without having Zend Server installed.

This commit is contained in:
ChristianB
2013-01-31 12:16:16 +01:00
parent 83b84ff818
commit f0ba64ad4b
3 changed files with 35 additions and 36 deletions

View File

@@ -0,0 +1,22 @@
<?php
/*
* This file is part of the Monolog package.
*
* (c) Jordi Boggiano <j.boggiano@seld.be>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Monolog\Handler;
/**
* Exception can be thrown if an extension for an handler is missing
*
* @author Christian Bergau <cbergau86@gmail.com>
*/
class MissingExtensionException extends \Exception
{
}

View File

@@ -36,22 +36,18 @@ class ZendMonitorHandler extends AbstractProcessingHandler
Logger::EMERGENCY => 0,
);
/**
* Is application running on a zend server?
*
* @var bool
*/
protected $isZendServer = false;
/**
* Construct
*
* @param int $level
* @param bool $bubble
* @throws MissingExtensionException
*/
public function __construct($level = Logger::DEBUG, $bubble = true)
{
$this->isZendServer = function_exists('zend_monitor_custom_event');
if (!function_exists('zend_monitor_custom_event')) {
throw new MissingExtensionException('You must have Zend Server installed in order to use this handler');
}
parent::__construct($level, $bubble);
}
@@ -60,13 +56,11 @@ class ZendMonitorHandler extends AbstractProcessingHandler
*/
protected function write(array $record)
{
if ($this->isZendServer()) {
$this->writeZendMonitorCustomEvent(
$this->levelMap[$record['level']],
$record['message'],
$record['formatted']
);
}
$this->writeZendMonitorCustomEvent(
$this->levelMap[$record['level']],
$record['message'],
$record['formatted']
);
}
/**
@@ -98,14 +92,4 @@ class ZendMonitorHandler extends AbstractProcessingHandler
{
return $this->levelMap;
}
/**
* Is Zend Server?
*
* @return bool
*/
public function isZendServer()
{
return $this->isZendServer;
}
}

View File

@@ -25,17 +25,7 @@ class ZendMonitorHandlerTest extends TestCase
}
/**
* @covers \Monolog\Handler\ZendMonitor::__construct
* @covers \Monolog\Handler\ZendMonitor::isZendServer
*/
public function testIsZendServerReturnsTrue()
{
$zendMonitor = new ZendMonitorHandler();
$this->assertTrue($zendMonitor->isZendServer());
}
/**
* @covers \Monolog\Handler\ZendMonitor::write
* @covers Monolog\Handler\ZendMonitorHandler::write
*/
public function testWrite()
{
@@ -69,6 +59,9 @@ class ZendMonitorHandlerTest extends TestCase
$zendMonitor->handle($record);
}
/**
* @covers Monolog\Handler\ZendMonitorHandler::getDefaultFormatter
*/
public function testGetDefaultFormatterReturnsNormalizerFormatter()
{
$zendMonitor = new ZendMonitorHandler();