laravel 中间件记录日志
在Laravel中,你可以创建一个自定义的中间件来记录请求和响应的日志。以下是一个简单的中间件示例,它将记录每个请求的信息:
- 使用
artisan
命令生成一个新的中间件:
php artisan make:middleware LogRequestMiddleware
- 编辑生成的中间件文件(位于
app/Http/Middleware/LogRequestMiddleware.php
),添加日志记录的逻辑:
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Log;
class LogRequestMiddleware
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle(Request $request, Closure $next)
{
// 在请求处理之前记录日志
Log::info('Request received', [
'url' => $request->fullUrl(),
'method' => $request->method(),
'ip' => $request->ip(),
'input' => $request->all(),
]);
$response = $next($request);
// 在请求处理后记录日志
Log::info('Response sent', [
'status' => $response->getStatusCode()
]);
return $response;
}
}
- 注册中间件,在
app/Http/Kernel.php
文件中的$middleware
数组中添加你的中间件:
protected $middleware = [
// ...
\App\Http\Middleware\LogRequestMiddleware::class,
];
或者,如果你想要中间件只对特定的HTTP方法或者路由生效,可以使用 routeMiddleware
数组进行注册,并在路由中指定中间件。
现在,每当有请求经过Laravel应用程序时,都会触发这个中间件,并记录请求和响应的日志信息。
评论已关闭