pluggit / logging
Logging提供了一种薄的PSR-7接口抽象,可以连接任何位于其后的日志设施。
2.0.0
2024-06-12 10:58 UTC
Requires
- php: ^8.0
- psr/log: ^2.0
Requires (Dev)
- behat/behat: ^3.1
- monolog/monolog: ^2.9
- phpspec/phpspec: ^7
- squizlabs/php_codesniffer: 2.*
- symfony/var-dumper: ^6.0
This package is not auto-updated.
Last update: 2024-09-18 12:12:12 UTC
README
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));