Guzzle middleware to log requests and responses.
Install via composer:
composer require asjustas/guzzle-logger-middleware
<?php
use GuzzleHttp\HandlerStack;
use AJ\Guzzle\Middleware\Logger;
use Psr\Http\Message\RequestInterface;
use Psr\Http\Message\ResponseInterface;
use GuzzleHttp\Client;
$stack = HandlerStack::create();
$stack
->push(
new Logger(
function (RequestInterface $request, ?ResponseInterface $response, array $context) {
print_r(
[
'uri' => (string)$request->getUri(),
'req' => (string)$request->getBody(),
'res' => $response ? (string)$response->getBody() : '',
'context' => $context,
]
);
}
)
);
$client = new Client([
'handler' => $stack,
]);
$client
->request(
'POST',
'http://example.com/404',
[
'body' => 'Hello World',
'logger' => [
'enabled' => true,
'context' => [
'something' => 'important',
],
],
]
);