【问题标题】:How to log every response in laravel 5.2 framework如何在 laravel 5.2 框架中记录每个响应
【发布时间】:2016-05-16 22:56:22
【问题描述】:

我使用下面的代码来记录我的 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()]);
    }

}

谁能给我建议解决方案?

【问题讨论】:

    标签: php laravel laravel-5 laravel-5.2 laravel-middleware


    【解决方案1】:

    假设您为您的 routes.php 使用 web 组,您应该在 $middlewareGroups 中为 web 添加以下中间件:

    \App\Http\Middleware\LogAfterRequest ::class,
    

    您的routes.php 应如下所示:

    Route::group(['middleware' => 'web'], function () {
      // here you put all the routes
    });
    

    【讨论】:

    • 感谢您的回复。但我已经在 kernal.php 中添加了它。我有解决办法。问题是我在控制器方法中添加了 die,因为终止函数没有执行,所以没有生成日志。
    【解决方案2】:

    我已经找到了解决方案。问题是我在控制器方法中添加了“die”,因此终止函数没有执行,因此没有生成日志。

    【讨论】:

      猜你喜欢
      • 2020-03-19
      • 2016-04-21
      • 1970-01-01
      • 2017-03-10
      • 1970-01-01
      • 2021-12-29
      • 2017-01-16
      • 2014-06-15
      • 2014-12-31
      相关资源
      最近更新 更多