4

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()]);
    }

}

誰かが私に解決策を提案できますか?

4

2 に答える 2

2

webroutes.php に groupを使用すると仮定すると、次のミドルウェアを追加app/Kernel.phpする必要があります。$middlewareGroupsweb

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

次のroutes.phpようになります。

Route::group(['middleware' => 'web'], function () {
  // here you put all the routes
});
于 2016-02-07T10:33:46.497 に答える