Guzzle Http没有登录Laravel与Monolog

问题描述 投票:0回答:1

我有这个例子:

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请求/响应。

laravel middleware guzzle monolog guzzlehttp
1个回答
0
投票

似乎Middleware::log()的第一个参数被假定为您尝试使用的日志通道。例如:

$stack = HandlerStack::create();

$logChannel = app()->get('log')->channel('my-custom-channel');

$stack->push(
    Middleware::log(
        $logChannel,
        new MessageFormatter('{req_body} - {res_body}')
    )
);

这将告诉中间件您尝试使用哪个日志通道。

© www.soinside.com 2019 - 2024. All rights reserved.