alexandre-daubois / monolog-processor-collection
Monolog处理器集合
1.3.2
2023-12-23 17:55 UTC
Requires
- php: >=8.1
- monolog/monolog: ^3
- symfony/uid: ^6.3|^7.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.37
- phpunit/phpunit: ^10
This package is auto-updated.
Last update: 2024-09-23 19:39:02 UTC
README
欢迎使用Monolog处理器集合(MPC)——专为增强与著名Monolog库相结合的日志记录而设计的终极处理器套件。此工具包精心制作,以与PHP 8.1+无缝集成,确保您的日志记录以最小的开销捕获所需的详细信息。
MPC是为那些对日志有更高要求的开发者而设计的。无论是追踪难以捉摸的bug还是监控实时生产环境,处理器通过添加宝贵的上下文来丰富日志条目,将普通日志转变为丰富的、可操作的数据库。
MPC兼容网络服务器的worker模式,因为相关的处理器实现了ResettableInterface
。
可用处理器
该软件包提供以下处理器
BacktraceProcessor
将堆栈跟踪添加到日志记录ClientIpProcessor
将客户端IP地址添加到日志记录EnvVarProcessor
将一个或多个环境变量的值添加到日志记录HighResolutionTimestampProcessor
将高精度时间添加到日志记录IsHttpsProcessor
将一个表示请求是否为安全HTTP请求的布尔值添加到日志记录PhpIniValueProcessor
将一个或多个PHP ini设置的值添加到日志记录ProtocolVersionProcessor
将HTTP协议版本添加到日志记录RequestSizeProcessor
将请求的大小添加到日志记录,包括头信息,以字节为单位ResourceUsagesProcessor
将资源使用情况添加到日志记录,如getrusage()返回SapiNameProcessor
将SAPI名称添加到日志记录SessionIdProcessor
将会话ID添加到日志记录,如果没有活动会话,则为nullUuidProcessor
将UUID v7添加到日志记录以跟踪同一请求期间触发的记录
安装
安装MPC的推荐方法是通过Composer
composer require alexandre-daubois/monolog-processor-collection
使用方法
所有处理器都可以像使用任何其他Monolog处理器一样使用。例如
use Monolog\Logger; $logger = new Logger('name'); $logger->pushProcessor(new BacktraceProcessor());
一些处理器,如EnvVarProcessor
和PhpIniValueProcessor
,需要您指定更多参数。例如
use Monolog\Logger; $logger = new Logger('name'); $logger->pushProcessor(new EnvVarProcessor(['APP_ENV', 'APP_DEBUG']));
与Symfony和MonologBundle的集成
您可以通过向您的config/packages/monolog.php
文件添加以下配置来将这些处理器注册到Symfony和MonologBundle中使用
use Monolog\Processor\ProcessorInterface; use MonologProcessorCollection\BacktraceProcessor; use MonologProcessorCollection\EnvVarProcessor; use MonologProcessorCollection\ProtocolVersionProcessor; use MonologProcessorCollection\EnvVarProcessor; use MonologProcessorCollection\SapiNameProcessor; return static function (ContainerConfigurator $configurator): void { // ... // register as many processors as you like, but keep in mind that // each processor is called for each log record $services = $configurator->services(); $services ->set(BacktraceProcessor::class) ->set(EnvVarProcessor::class)->args(['APP_ENV']) ->set(ProtocolVersionProcessor::class) ->set(SapiNameProcessor::class); // ... };
如果您不使用自动配置,您需要将处理器标记为monolog.processor
return static function (ContainerConfigurator $configurator): void { // ... $services = $configurator->services(); $services ->set(BacktraceProcessorAlias::class) ->tag('monolog.processor', ['handler' => 'main']) ->set(EnvVarProcessor::class)->args(['APP_ENV']) ->tag('monolog.processor', ['handler' => 'main']); // ... };
您可以使用YAML实现相同的配置
# config/packages/monolog.yaml services: MonologProcessorCollection\BacktraceProcessor: tags: - { name: monolog.processor, handler: main } MonologProcessorCollection\EnvVarProcessor: arguments: - APP_ENV tags: - { name: monolog.processor, handler: main }
或XML
<!-- config/packages/monolog.xml --> <!-- ... --> <service id="MonologProcessorCollection\BacktraceProcessor" public="false"> <tag name="monolog.processor" handler="main" /> </service> <service id="MonologProcessorCollection\EnvVarProcessor" public="false"> <argument>APP_ENV</argument> <tag name="monolog.processor" handler="main" /> </service>