1. Go to this page and download the library: Download gmponos/guzzle_logger library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
gmponos / guzzle_logger example snippets
use GuzzleLogMiddleware\LogMiddleware;
use GuzzleHttp\HandlerStack;
$logger = new Logger(); //A new PSR-3 Logger like Monolog
$stack = HandlerStack::create(); // will create a stack stack with middlewares of guzzle already pushed inside of it.
$stack->push(new LogMiddleware($logger));
$client = new GuzzleHttp\Client([
'handler' => $stack,
]);
namespace GuzzleLogMiddleware\Handler;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\RequestInterface;
use GuzzleHttp\TransferStats;
use Psr\Log\LoggerInterface;
/** A simple handler that logs only requests */
final class SimpleHandler implements HandlerInterface
{
public function log(
LoggerInterface $logger,
RequestInterface $request,
?ResponseInterface $response = null,
?\Throwable $exception = null,
?TransferStats $stats = null,
array $options = []
): void {
$logger->debug('Guzzle HTTP request: ' . \GuzzleHttp\Psr7\str($request));
return;
}
}
use GuzzleLogMiddleware\LogMiddleware;
use GuzzleHttp\HandlerStack;
$logger = new Logger(); //A new PSR-3 Logger like Monolog
$stack = HandlerStack::create(); // will create a stack stack with middlewares of guzzle already pushed inside of it.
$stack->push(new LogMiddleware($logger, new SimpleHandler()));
$client = new GuzzleHttp\Client([
'handler' => $stack,
]);
$strategy = new StatusCodeStrategy(
LogLevel::INFO, // Default level used for requests or for responses that status code are not set with a different level.
LogLevel::CRITICAL // Default level used for exceptions.
);
$strategy->setLevel(404, LogLevel::WARNING);
$multiRecordArrayHandler = new MultiRecordArrayHandler($strategy);
$logger = new Logger(); //A new PSR-3 Logger like Monolog
$stack = HandlerStack::create(); // will create a stack stack with middlewares of guzzle already pushed inside of it.
$stack->push(new LogMiddleware($logger, $multiRecordArrayHandler));
$client = new GuzzleHttp\Client([
'handler' => $stack,
]);