manomano-tech/correlation-ids-monolog
此包已被废弃,不再维护。作者建议使用不再维护的包。
manomano-tech/correlation-ids包的Monolog处理器
1.0.0
2018-09-29 14:29 UTC
Requires
- php: ^7.1.3
- manomano-tech/correlation-ids: ^1.0
- monolog/monolog: ^1.0
Requires (Dev)
- php-mock/php-mock-phpunit: ^2.1
- phpunit/phpunit: ^7.3
- symfony/debug: ^4.1
- symfony/phpunit-bridge: ^4.1
This package is auto-updated.
Last update: 2022-07-18 15:01:27 UTC
README
📢 注意: 此存储库不再维护。
Monolog关联插件
在所有记录中注入关联ID。
安装
composer require manomano-tech/correlation-ids-monolog
使用
use ManoManoTech\CorrelationId\CorrelationEntryName; use ManoManoTech\CorrelationId\Factory\HeaderCorrelationIdContainerFactory; use ManoManoTech\CorrelationId\Generator\RamseyUuidGenerator; use ManoManoTech\CorrelationIdMonolog\CorrelationIdProcessor; use Monolog\Logger; // We specify which generator will be responsible for generating the // identification of the current process $generator = new RamseyUuidGenerator(); // We define what are the http header names to look for // this is optional. We show the default values here. $correlationEntryNames = new CorrelationEntryName( 'current-correlation-id', 'parent-correlation-id', 'root-correlation-id' ); $factory = new HeaderCorrelationIdContainerFactory( $generator, $correlationEntryNames ); $correlationIdContainer = $factory->create(getallheaders()); // now you can create your monolog processor $processor = new CorrelationIdProcessor($correlationIdContainer); $logger = new Logger('channel-name'); $logger->pushProcessor([$processor]); $logger->addInfo('message');
自定义输出格式
条目名称
默认情况下,值将呈现如下
$record = [ 'extra' => [ 'current' => '6a051d24-aa5b-4c57-bcb4-bbbb7eda1c16', 'parent' => '3fc044d9-90fa-4b50-b6d9-3423f567155f', 'root' => '3b5263fa-1644-4750-8f11-aaf61e58cd9e', ], ];
您可以通过向构造函数提供第二个参数来更改此设置
use ManoManoTech\CorrelationId\CorrelationEntryName; use ManoManoTech\CorrelationIdMonolog\CorrelationIdProcessor; use Monolog\Logger; $correlationEntryName = new CorrelationEntryName( 'current-id', 'parent-id', 'root-id' ); $processor = new CorrelationIdProcessor( $correlationIdContainer, $correlationEntryName ); $logger = new Logger('channel-name'); $logger->pushProcessor([$processor]); $logger->addInfo('message');
将生成
$record = [ 'extra' => [ 'current-id' => '6a051d24-aa5b-4c57-bcb4-bbbb7eda1c16', 'parent-id' => '3fc044d9-90fa-4b50-b6d9-3423f567155f', 'root-id' => '3b5263fa-1644-4750-8f11-aaf61e58cd9e', ], ];
将请求关联标识符分组在一个条目中
默认情况下,处理器将为每个关联ID键在extra
部分中添加一个条目。
您可以将所有ID分组在一个数组中
use ManoManoTech\CorrelationIdMonolog\CorrelationIdProcessor; use Monolog\Logger; $processor = new CorrelationIdProcessor($correlationIdContainer); $processor->groupCorrelationIdsInOneArrayWithKey('correlation'); $logger = new Logger('channel-name'); $logger->pushProcessor([$processor]); $logger->addInfo('message');
将生成
$record = [ 'extra' => [ 'correlation' => [ 'current' => '6a051d24-aa5b-4c57-bcb4-bbbb7eda1c16', 'parent' => '3fc044d9-90fa-4b50-b6d9-3423f567155f', 'root' => '3b5263fa-1644-4750-8f11-aaf61e58cd9e', ], ], ];
跳过空关联ID
默认情况下,处理器将添加每个关联ID,即使它们为空。
$record = [ 'extra' => [ 'current' => '6a051d24-aa5b-4c57-bcb4-bbbb7eda1c16', 'parent' => null, 'root' => null, ], ];
您可以使用skipEmptyValues
方法更改此行为
use ManoManoTech\CorrelationIdMonolog\CorrelationIdProcessor; use Monolog\Logger; $processor = new CorrelationIdProcessor($CorrelationIdContainer); $processor->skipEmptyValues(); $logger = new Logger('channel-name'); $logger->pushProcessor([$processor]); $logger->addInfo('message');
将生成
$record = [ 'extra' => [ 'current' => '6a051d24-aa5b-4c57-bcb4-bbbb7eda1c16', ], ];