vbukreyev / guzzle-log-middleware
此包已被放弃,不再维护。作者建议使用 see rtheunissen/guzzle-log-middleware 包。
Guzzle 中间件,用于记录请求和响应
v0.4.0
2015-06-16 06:35 UTC
Requires
- php: >=5.5
- guzzlehttp/guzzle: ~6.0
- psr/log: ~1.0
Requires (Dev)
- mockery/mockery: ^0.9.4
- phpunit/phpunit: ~4.6
Suggests
- monolog/monolog: Recommended PSR-3 logger
This package is not auto-updated.
Last update: 2022-02-01 12:51:18 UTC
README
安装
composer require vbukreyev/guzzle-log-middleware
使用方法
use Concat\Http\Middleware\Logger;
记录器
您可以使用 PSR-3 记录器(例如 Monolog)或一个接受日志级别、消息和上下文数组的可调用的函数。
$logger = new myLogger(); // should implements Psr\Log\LoggerInterface $middleware = new Logger($logger); $middleware->setLogLevel(LogLevel::DEBUG); $middleware->setFormatter(new \GuzzleHttp\MessageFormatter(myLogger::MY_FORMAT)); $middleware->setRequestLoggingEnabled(false); $stack = \GuzzleHttp\HandlerStack::create(); $stack->push($middleware->logHandler()); $client = new GuzzleHttp\Client([ 'handler' => $stack, ]); ### class myLogger extends \Psr\Log\AbstractLogger { const MY_FORMAT = "{hostname} {req_header_User-Agent} - [{date_common_log}] \"{method} {target} HTTP/{version}\" {code} {res_header_Content-Length} :: {req_body}"; public function log($level, $message, array $context = array()) { file_put_contents('/tmp/my-logger.log', $message . PHP_EOL, FILE_APPEND); } }
或者
$middleware = new Logger(function ($level, $message, array $context) { // Log the message });
日志级别
您可以将日志级别设置为一个字符串或一个接受响应的可调用函数。如果未设置响应,则可以假设它是仅请求的日志,或者请求已被拒绝。如果未设置日志级别,则将使用默认日志级别,对于状态码 >= 400,为 LogLevel::NOTICE,否则为 LogLevel::INFO。
use Psr\Log\LogLevel; $middleware->setLogLevel(LogLevel::DEBUG);
或者
$middleware->setLogLevel(function ($response) { // Return log level });
格式化程序
您可以将消息格式化程序设置为 MessageFormatter 或一个接受请求、响应以及在请求被拒绝时的原因的可调用函数。
$middleware->setFormatter($formatter);
或者
$middleware->setFormatter(function ($request, $response, $reason) { // Return log message });
或者
$middleware = new Logger($logger, $formatter);
请求记录
只有当收到响应时,才会记录请求。您可以通过使用 $middleware->setRequestLoggingEnabled(true) 来启用请求记录,这将记录请求,当它被请求时,以及它被接收时的响应。在这种情况下,任何 $response 引用都将为 null。
中间件
此包旨在作为 Guzzle 6 中间件 运行。