zendtech/zendhq-monolog-handler

写入ZendHQ监控的Monolog处理器

0.1.1 2023-12-01 14:41 UTC

This package is auto-updated.

Last update: 2024-08-30 01:55:24 UTC


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\ProcessableHandlerInterfaceMonolog\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监控事件;您将在事件抽屉中看到这一点。