我有这个例子:
use Monolog\Logger;
use GuzzleHttp\HandlerStack;
use GuzzleHttp\Middleware;
use GuzzleHttp\MessageFormatter;
public function getApiTest()
{
$stack = HandlerStack::create();
$stack->push(
Middleware::log(
new Logger('Logger'),
new MessageFormatter('{req_body} - {res_body}')
)
);
$client = new \GuzzleHttp\Client(
[
'base_uri' => 'http://apitesting.test/api/',
'handler' => $stack,
]
);
echo (string) $client->get('apitest')->getBody();
}
根据我的理解,应记录请求和响应。
我有一个自定义日志记录通道,用于记录到数据库。但我现在已禁用它并返回Laravel的文件记录 - 但这仍然没有记录Guzzle请求/响应。
似乎Middleware::log()
的第一个参数被假定为您尝试使用的日志通道。例如:
$stack = HandlerStack::create();
$logChannel = app()->get('log')->channel('my-custom-channel');
$stack->push(
Middleware::log(
$logChannel,
new MessageFormatter('{req_body} - {res_body}')
)
);
这将告诉中间件您尝试使用哪个日志通道。