mirror of
https://github.com/Seldaek/monolog.git
synced 2025-08-13 08:34:12 +02:00
Merge remote-tracking branch 'origin/1.x'
This commit is contained in:
@@ -19,6 +19,7 @@ use Monolog\Logger;
|
|||||||
* Handler sending logs to Zend Monitor
|
* Handler sending logs to Zend Monitor
|
||||||
*
|
*
|
||||||
* @author Christian Bergau <cbergau86@gmail.com>
|
* @author Christian Bergau <cbergau86@gmail.com>
|
||||||
|
* @author Jason Davis <happydude@jasondavis.net>
|
||||||
*/
|
*/
|
||||||
class ZendMonitorHandler extends AbstractProcessingHandler
|
class ZendMonitorHandler extends AbstractProcessingHandler
|
||||||
{
|
{
|
||||||
@@ -27,16 +28,7 @@ class ZendMonitorHandler extends AbstractProcessingHandler
|
|||||||
*
|
*
|
||||||
* @var array
|
* @var array
|
||||||
*/
|
*/
|
||||||
protected $levelMap = [
|
protected $levelMap = [];
|
||||||
Logger::DEBUG => 1,
|
|
||||||
Logger::INFO => 2,
|
|
||||||
Logger::NOTICE => 3,
|
|
||||||
Logger::WARNING => 4,
|
|
||||||
Logger::ERROR => 5,
|
|
||||||
Logger::CRITICAL => 6,
|
|
||||||
Logger::ALERT => 7,
|
|
||||||
Logger::EMERGENCY => 0,
|
|
||||||
];
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string|int $level The minimum logging level at which this handler will be triggered.
|
* @param string|int $level The minimum logging level at which this handler will be triggered.
|
||||||
@@ -46,8 +38,21 @@ class ZendMonitorHandler extends AbstractProcessingHandler
|
|||||||
public function __construct($level = Logger::DEBUG, bool $bubble = true)
|
public function __construct($level = Logger::DEBUG, bool $bubble = true)
|
||||||
{
|
{
|
||||||
if (!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');
|
throw new MissingExtensionException(
|
||||||
|
'You must have Zend Server installed with Zend Monitor enabled in order to use this handler'
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
//zend monitor constants are not defined if zend monitor is not enabled.
|
||||||
|
$this->levelMap = [
|
||||||
|
Logger::DEBUG => \ZEND_MONITOR_EVENT_SEVERITY_INFO,
|
||||||
|
Logger::INFO => \ZEND_MONITOR_EVENT_SEVERITY_INFO,
|
||||||
|
Logger::NOTICE => \ZEND_MONITOR_EVENT_SEVERITY_INFO,
|
||||||
|
Logger::WARNING => \ZEND_MONITOR_EVENT_SEVERITY_WARNING,
|
||||||
|
Logger::ERROR => \ZEND_MONITOR_EVENT_SEVERITY_ERROR,
|
||||||
|
Logger::CRITICAL => \ZEND_MONITOR_EVENT_SEVERITY_ERROR,
|
||||||
|
Logger::ALERT => \ZEND_MONITOR_EVENT_SEVERITY_ERROR,
|
||||||
|
Logger::EMERGENCY => \ZEND_MONITOR_EVENT_SEVERITY_ERROR,
|
||||||
|
];
|
||||||
parent::__construct($level, $bubble);
|
parent::__construct($level, $bubble);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -57,15 +62,23 @@ class ZendMonitorHandler extends AbstractProcessingHandler
|
|||||||
protected function write(array $record): void
|
protected function write(array $record): void
|
||||||
{
|
{
|
||||||
$this->writeZendMonitorCustomEvent(
|
$this->writeZendMonitorCustomEvent(
|
||||||
$this->levelMap[$record['level']],
|
Logger::getLevelName($record['level']),
|
||||||
$record['message'],
|
$record['message'],
|
||||||
$record['formatted']
|
$record['formatted'],
|
||||||
|
$this->levelMap[$record['level']]
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function writeZendMonitorCustomEvent(int $level, string $message, array $formatted): void
|
/**
|
||||||
|
* Write to Zend Monitor Events
|
||||||
|
* @param string $type Text displayed in "Class Name (custom)" field
|
||||||
|
* @param string $message Text displayed in "Error String"
|
||||||
|
* @param mixed $formatted Displayed in Custom Variables tab
|
||||||
|
* @param int $severity Set the event severity level (-1,0,1)
|
||||||
|
*/
|
||||||
|
protected function writeZendMonitorCustomEvent(string $type, string $message, array $formatted, int $severity): void
|
||||||
{
|
{
|
||||||
zend_monitor_custom_event($level, $message, $formatted);
|
zend_monitor_custom_event($type, $message, $formatted, $severity);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -12,6 +12,7 @@
|
|||||||
namespace Monolog\Handler;
|
namespace Monolog\Handler;
|
||||||
|
|
||||||
use Monolog\Test\TestCase;
|
use Monolog\Test\TestCase;
|
||||||
|
use Monolog\Logger;
|
||||||
|
|
||||||
class ZendMonitorHandlerTest extends TestCase
|
class ZendMonitorHandlerTest extends TestCase
|
||||||
{
|
{
|
||||||
@@ -54,7 +55,12 @@ class ZendMonitorHandlerTest extends TestCase
|
|||||||
|
|
||||||
$zendMonitor->expects($this->once())
|
$zendMonitor->expects($this->once())
|
||||||
->method('writeZendMonitorCustomEvent')
|
->method('writeZendMonitorCustomEvent')
|
||||||
->with($levelMap[$record['level']], $record['message'], $formatterResult);
|
->with(
|
||||||
|
Logger::getLevelName($record['level']),
|
||||||
|
$record['message'],
|
||||||
|
$formatterResult,
|
||||||
|
$levelMap[$record['level']]
|
||||||
|
);
|
||||||
|
|
||||||
$zendMonitor->handle($record);
|
$zendMonitor->handle($record);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user