php – 如何使用Guzzle 6记录所有API调用

我正在尝试使用guzzle 6,它运行正常,但是当涉及到如何记录所有api调用时我迷失了.我想简单地记录时间,从会话登录用户,网址以及与API调用有关的任何其他常见相关信息.我似乎找不到Guzzle 6引用的任何文档,只有guzzle 3(他们已经更改了日志记录addSubscriber调用).这是我当前的API调用方式:

$client = new GuzzleHttp\Client(['defaults' => ['verify' => false]]);
$res = $client->get($this->url . '/api/details', ['form_params' => ['file' => $file_id]]);

解决方法:

您可以使用任何与Guzzle 6实现PSR-3接口的记录器

在下面的例子中,我使用Monolog作为Logger和内置的Guzzle中间件和messageformatter.

use GuzzleHttp\HandlerStack;
use GuzzleHttp\Middleware;
use GuzzleHttp\messageformatter;
use Monolog\Logger;

$stack = HandlerStack::create();
$stack->push(
    Middleware::log(
        new Logger('Logger'),
        new messageformatter('{req_body} - {res_body}')
    )
);
$client = new \GuzzleHttp\Client(
    [
        'base_uri' => 'http://httpbin.org',
        'handler' => $stack,
    ]
);

echo (string) $client->get('ip')->getBody();

有关日志中间件和消息格式化程序的详细信息尚未详细记录.但是你可以在0730中使用messageformatter中可以使用的变量

还有一个guzzle-logmiddleware,它允许您自定义格式化程序等.

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...