pluggit/logging

Logging提供了一种薄的PSR-7接口抽象,可以连接任何位于其后的日志设施。

2.0.0 2024-06-12 10:58 UTC

README

Build Status Scrutinizer Code Quality

Logging提供了一种简单且与PSR-3日志接口兼容的抽象,您可以将其连接到不同的后端以定制日志需求

Logging提供了一种薄的PSR-7接口抽象,可以连接任何位于其后的日志设施。

安装

按常规要求库

composer require "pluggit/logging"

Monolog

此库提供Monolog作为其主要日志后端。您需要手动安装此库

composer require monolog/monolog ^1.2

要创建工厂,请将默认通道名称作为第一个参数,将格式化程序作为第二个参数。

<?php
use Cmp\Logging\Monolog\LoggingFactory;
use Monolog\Formatter\JsonFormatter;
$logger = new LoggingFactory('yoursite', 'error_channel', new JsonFormatter(true));

处理器

库提供了一个工厂,以简化向日志对象添加一些处理器的过程

内置处理器

  • RotatingFileHandler
    此处理器将日志消息写入文件,根据给定的日期格式旋转名称
<?php
use Cmp\Logging\Monolog\LoggingFactory;
use Monolog\Formatter\JsonFormatter;
use Monolog\Logger;

$logger = new LoggingFactory('yoursite', 'error_channel', new JsonFormatter(true));

// addRotatingFileHandlerBuilder(directory path, date format, max files number, file name, file name format, level)
$logger->addRotatingFileHandlerBuilder('directory/path','Y-m-d', 14, '{channel}.log', '{date}_{filename}', Logger::ERROR);
  • SyslogUdpHandler
    此处理器将发送带有日志消息的UDP数据包,适用于向第三方日志平台或存储服务器(如ElasticSearch)发送消息
<?php
use Cmp\Logging\Monolog\LoggingFactory;
use Monolog\Formatter\JsonFormatter;

$logger = new LoggingFactory('yoursite', 'error_channel', new JsonFormatter(true));

//addSyslogUdpHandlerBuilder(syslog UDP Host, syslog UDP Port, level)
$logger->addSyslogUdpHandlerBuilder('12.34.56.78', '90', Logger::ERROR);

添加自定义处理器

要添加自定义处理器,您应该编写实现HandlerBuilderInterface的处理程序构建器

<?php
namespace Cmp\Logging\Monolog\Handler;

use Monolog\Formatter\FormatterInterface;
use Monolog\Handler\AbstractHandler;

interface HandlerBuilderInterface
{
    /**
     * @param string             $channelName
     * @param array              $processors
     * @param FormatterInterface $formatter
     *
     * @return AbstractHandler
     */
    public function build($channelName, FormatterInterface $formatter, $processors = []);
}

应使用addHandlerBuilder方法添加处理程序构建器

<?php
use Cmp\Logging\Monolog\LoggingFactory;
use Monolog\Formatter\JsonFormatter;
use Customer\Namespace\CustomHandlerBuilder;

$logger = new LoggingFactory('yoursite', 'error_channel', new JsonFormatter(true));
$handlerBuilder = new CustomHandlerBuilder($param1, $param2);
$logger->addHandlerBuilder($handlerBuilder);

错误处理器

要添加默认错误处理器,请使用addErrorHandlerBuilder方法。

<?php
use Cmp\Logging\Monolog\LoggingFactory;
use Monolog\Formatter\JsonFormatter;
use Customer\Namespace\CustomHandlerBuilder;

$logger = new LoggingFactory('yoursite', 'error_channel', new JsonFormatter(true));
$handlerBuilder = new CustomHandlerBuilder($param1, $param2);
$logger->addErrorHandlerBuilder($handlerBuilder);

处理器

<?php
use Cmp\Logging\Monolog\LoggingFactory;
use Monolog\Formatter\JsonFormatter;
use Customer\Namespace\CustomHandlerBuilder;
use Monolog\Logger\GitProcessor;

$logger = new LoggingFactory('yoursite', 'error_channel', new JsonFormatter(true));
//addProcessor(callable $processor)
$logger->addProcessor(new GitProcessor(Logger:DEBUG));