zendtech / zendhq-monolog-handler
写入ZendHQ监控的Monolog处理器
0.1.1
2023-12-01 14:41 UTC
Requires
- php: ^7.3.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0
- ext-zendhq: *
- monolog/monolog: ^2.4 || ^3.4
Requires (Dev)
- laminas/laminas-coding-standard: ~2.3.0
- phpcompatibility/php-compatibility: ^9.3
- phpunit/phpunit: ^9.5.11
README
该项目为Monolog提供了一个处理器,用于将日志推送到ZendHQ监控。
安装
composer require zendtech/zendhq-monolog-handler
需求
- 一个ZendHQ节点
- ZendPHP >= 7.2
- ZendHQ扩展
- Monolog 2.4+ 或 3.4+
使用方法
以下示例演示了如何创建一个用于在Monolog中记录日志的ZendHQHandler
实例。
默认实例化
默认使用Monolog/PSR-3日志级别来指示严重性。您可以通过不传递任何参数或传递$level
和/或$bubble
参数来实例化提供的ZendTech\ZendHQ\MonologHandler\ZendHQHandler
类。
use Monolog\Logger; use ZendTech\ZendHQ\MonologHandler\ZendHQHandler; // PHP 7: // - Default level (DEBUG) and allowing bubbling: $handler = new ZendHQHandler(); // - Setting a level mask of warnings or greater only: $handler = new ZendHQHandler(null, Logger::WARNING); // - Default level (DEBUG), but disallowing bubbling $handler = new ZendHQHandler(null, Logger::DEBUG, false); // PHP 8: // - Default level (DEBUG) and allowing bubbling: $handler = new ZendHQHandler(); // - Setting a level mask of warnings or greater only: $handler = new ZendHQHandler(level: Logger::WARNING); // - Default level (DEBUG), but disallowing bubbling $handler = new ZendHQHandler(bubble: false);
使用命名规则的实例化
ZendHQ自定义监控规则将在规则定义中指定严重性,因此严重性被忽略。要使用此类自定义规则,在实例化ZendHQHandler
时提供自定义规则名称。以下示例针对一个名为“my_custom_rule”的规则。虽然您可以提供一个默认级别来处理,但该值不会发送到ZendHQ,并且仅用于确定消息是否会记录。
use Monolog\Logger; use ZendTech\ZendHQ\MonologHandler\ZendHQHandler; // PHP 7: // - Default level (DEBUG) and allowing bubbling: $handler = new ZendHQHandler('my_custom_rule'); // - Setting a level mask of warnings or greater only: $handler = new ZendHQHandler('my_custom_rule', Logger::WARNING); // - Default level (DEBUG), but disallowing bubbling $handler = new ZendHQHandler('my_custom_rule', Logger::DEBUG, false); // PHP 8: // - Default level (DEBUG) and allowing bubbling: $handler = new ZendHQHandler('my_custom_rule'); // - Setting a level mask of warnings or greater only: $handler = new ZendHQHandler('my_custom_rule', level: Logger::WARNING); // - Default level (DEBUG), but disallowing bubbling $handler = new ZendHQHandler('my_custom_rule', bubble: false);
格式化和处理器
ZendHQHandler
实现了Monolog\Handler\ProcessableHandlerInterface
和Monolog\Handler\FormattableHandlerInterface
。因此,您可以将处理器和格式化程序附加到处理器上,以便操作记录的信息。有关格式化程序和处理器更详细的信息,请参阅Monolog关于格式化程序和处理器的文档。
例如
$handler->setFormatter(new \Monolog\Formatter\LineFormatter()); $handler->pushProcessor(new \Monolog\Processor\PsrLogMessageProcessor());
将处理器添加到Monolog
Monolog写入通道,这实际上只是将不同的日志分离开来的一种方式。
use Monolog\Logger; $logger = new Logger('channel_name');
从这里,您需要将处理器添加到记录器
// Where $handler is the instance created via one of the examples in previous sections $logger->pushHandler($handler);
要记录,请使用$logger
实例的多种日志方法之一
$logger->warning('This is a warning!');
注意
- 通道名称作为类型发送到ZendHQ监控事件;您将在事件抽屉中看到这一点。