placetopay/guzzle-logger

v1.0.1 2024-03-26 17:29 UTC

This package is auto-updated.

Last update: 2024-09-26 18:32:25 UTC


README

Quality Gate Status

这是一个为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)。有关更多信息,请参阅许可证文件