aiblog/app/Http/Middleware/LogApiRequests.php
2024-11-17 11:30:01 +08:00

31 lines
No EOL
837 B
PHP

<?php
declare(strict_types=1);
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Log;
use Symfony\Component\HttpFoundation\Response;
class LogApiRequests
{
public function handle(Request $request, Closure $next): Response
{
$response = $next($request);
if (app()->environment('production')) {
Log::channel('api')->info('API Request', [
'method' => $request->method(),
'url' => $request->fullUrl(),
'user' => $request->user()?->id,
'ip' => $request->ip(),
'status' => $response->status(),
'duration' => defined('LARAVEL_START') ? round((microtime(true) - LARAVEL_START) * 1000, 2) : 0,
]);
}
return $response;
}
}