placetopay / guzzle-logger
v1.0.1
2024-03-26 17:29 UTC
Requires
- php: ^8.2
- ext-json: *
- guzzlehttp/guzzle: ^7.7
- psr/log: ^3.0
Requires (Dev)
- eduarguz/shift-php-cs: ^3.0
- fig/log-test: ^1.1
- friendsofphp/php-cs-fixer: ^3.6
- phpstan/phpstan: ^1.10
- phpunit/phpunit: ^9.5
- rector/rector: ^0.17.0
- squizlabs/php_codesniffer: 3.*
- symfony/var-dumper: ^4.2
This package is auto-updated.
Last update: 2024-09-26 18:32:25 UTC
README
这是一个为guzzle编写的中间件,可以帮助您使用PSR-3记录器自动记录每个请求和响应。
该中间件与Guzzle的版本7兼容。
用法
简单用法
从现在起,您将使用$client
对象执行每个请求和响应,这些请求和响应都将被记录。默认情况下,中间件使用INFO
级别记录每个活动。
use PlacetoPay\GuzzleLogger\Middleware\HttpLogMiddleware; use GuzzleHttp\HandlerStack; $logger = new Logger(); //A new PSR-3 Logger like Monolog $stack = HandlerStack::create(); // will create a stack with middlewares of guzzle already pushed inside of it. $stack->push(new HttpLogMiddleware($logger)); $client = new GuzzleHttp\Client([ 'handler' => $stack, ]);
使用Sanitizer
使用LoggerWithSanitizer类,您可以在记录时对敏感数据进行混淆或清理。
fieldsToSanitize是一个键值数组,您可以使用它来指定要清理的数据级别和混淆值。如果您不发送值,并且找到值,则将使用默认值ValueSanitizer::DEFAULT
进行清理。
use PlacetoPay\GuzzleLogger\Middleware\HttpLogMiddleware; use PlacetoPay\GuzzleLogger\LoggerWithSanitizer; use PlacetoPay\GuzzleLogger\ValueSanitizer; use GuzzleHttp\HandlerStack; use GuzzleLogger\ValueSanitizer; $fieldsToSanitize = [ 'request.body.instrument.card.cvv', 'request.body.instrument.card.number' => ValueSanitizer::CARD_NUMBER->value, 'request.body.instrument.card.expiration' => ValueSanitizer::DEFAULT->value, 'response.body.instrument.card.number' => fn ($value) => preg_replace('/(\d{6})(\d{3,9})(\d{4})/', '$1····$3', (string) $value) ]; $stack = HandlerStack::create(); $logger = new LoggerWithSanitizer(new Logger(), $fieldsToSanitize) $stack->push(new HttpLogMiddleware($logger)); $client = new GuzzleHttp\Client([ 'handler' => $stack, ]);
在每个请求上使用选项
您可以在每个请求上设置有关日志的选项。
$client->get('/', [ 'log' => [ 'statistics' => true, ] ]);
更改日志
有关最近更改的更多信息,请参阅CHANGELOG。
测试
$ composer test
许可证
MIT许可证(MIT)。有关更多信息,请参阅许可证文件。