rtheunissen / guzzle-log-middleware
Guzzle middleware to log requests and responses
Installs: 1 969 385
Dependents: 21
Suggesters: 1
Security: 0
Stars: 79
Watchers: 3
Forks: 17
Open Issues: 1
Requires
- php: >=7.2
- guzzlehttp/guzzle: ~6.0|^7.0
- psr/log: ^1.0|^2.0|^3.0
Requires (Dev)
- mockery/mockery: ^1.6
- phpunit/phpunit: ^9.3
Suggests
- monolog/monolog: Recommended PSR-3 logger
README
Installation
composer require rtheunissen/guzzle-log-middleware
Usage
use Concat\Http\Middleware\Logger;
Logger
You can use either a PSR-3 logger (such as Monolog) or a callable that accepts a log level, message, and context as an array.
$middleware = new Logger($logger);
or
$middleware = new Logger(function ($level, $message, array $context) { // Log the message });
Log level
You can set a log level as a string or a callable that accepts a response. If the
response is not set, it can be assumed that it's a request-only log, or that the
request has been rejected. If the log level is not set, the default log level will be
used which is LogLevel::NOTICE
for status codes >= 400, or LogLevel::INFO
otherwise.
use Psr\Log\LogLevel; $middleware->setLogLevel(LogLevel::DEBUG);
or
$middleware->setLogLevel(function ($response) { // Return log level });
Formatter
You can set a message formatter as a MessageFormatter or a callable that accepts a request, response, as well as a reason when a request has been rejected.
$middleware->setFormatter($formatter);
or
$middleware->setFormatter(function ($request, $response, $reason) { // Return log message });
or
$middleware = new Logger($logger, $formatter);
Request logging
A request will only be logged when its response is received. You can enable request logging
by using $middleware->setRequestLoggingEnabled(true)
, which will log a request when it is requested,
as well as its response when it is received. Any $response
references will be null
in the case
where only the request exists.
Middleware
This package is designed to function as Guzzle 6/7 Middleware.