1.自定义日志通道

vim config/logging.php
'request' => [    'driver' => 'daily',//按日期分隔日志    'path' => storage_path('logs/request.log'),    'tap' => [App\Logging\CustomizeFormatter::class],    'days' => 14,],

2.自定义json解析

新建CustomizeFormatter
<?phpnamespace App\Logging;class CustomizeFormatter{    /**     * 自定义给定的日志实例。     *     * @param  \Illuminate\Log\Logger $logger     * @return void     */    public function __invoke($logger)    {        foreach ($logger->getHandlers() as $handler) {            $handler->setFormatter(new CustomizeJsonFormatter());        }    }}
新建CustomizeJsonFormatter
<?phpnamespace App\Logging;use Monolog\Formatter\JsonFormatter;class CustomizeJsonFormatter extends JsonFormatter{    /**     * 格式化     *     * @param array $record     * @return string     */    public function format(array $record): string    {        $newRecord = [            'datetime' => $record['datetime']->format('Y-m-d H:i:s'),            'message' => $record['message'],        ];        if (!empty($record['context'])) {            $newRecord = array_merge($newRecord, $record['context']);        }        $json = $this->toJson($this->normalize($newRecord), true) . ($this->appendNewline ? "\n" : '');        return $json;    }}

3.记录HTTP申请

创立中间件
php artisan make:middleware RequestLogMiddleware
配置全局拜访 vim app/Http/Kernel.php
protected $middleware = [    ...    \App\Http\Middleware\RequestLogMiddleware::class,];
记录HTTP申请
$requestLog = [    'ip' => $request->ips(),    'method' => $request->method(),    'status_code' => $response->getStatusCode(),    'headers' => $request->header(),    'url' => $request->url(),    'query' => $request->query(),    'params' => $request->all(),    'response' => $response->getData(),];

4.输入日志

\Log::channel('request')->info('REQUEST LOG', $requestLog);