我使用下面的代码记录了我的API的每个请求和响应,但现在它不适用于Laravel 5.2。
我尝试使用https://laravel.com/docs/5.2/middleware#terminable-middleware但未成功。
use Closure;
use Illuminate\Contracts\Routing\TerminableMiddleware;
use Illuminate\Support\Facades\Log;
class LogAfterRequest implements TerminableMiddleware {
public function handle($request, Closure $next)
{
return $next($request);
}
public function terminate($request, $response)
{
$logFile = 'log.txt';
Log::useDailyFiles(storage_path().'/logs/'.$logFile);
Log::info('app.requests', ['request' => $request->all(), 'response' => $response->getContent()]);
}
}
有人能建议我解决方案吗?
答案 0 :(得分:2)
假设您对routes.php使用web
组,则应在app/Kernel.php
$middlewareGroups
中添加web
以下中间件:
\App\Http\Middleware\LogAfterRequest ::class,
您的routes.php
应如下所示:
Route::group(['middleware' => 'web'], function () {
// here you put all the routes
});
答案 1 :(得分:1)
我有解决方案。问题是我已经添加了#34; die"在控制器方法中,由于终止函数没有执行,因此没有生成日志。