Как регистрировать каждый ответ в рамках laravel 5.2

Я использовал приведенный ниже код для регистрации каждого запроса и ответа для моего 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()]);
    }

}

Может ли кто-нибудь предложить мне решение?


person Jitender Thakur    schedule 07.02.2016    source источник


Ответы (2)


Предполагая, что вы используете группу web для своего route.php, вы должны добавить в app/Kernel.php в $middlewareGroups для web следующее промежуточное ПО:

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

Ваш routes.php должен выглядеть так:

Route::group(['middleware' => 'web'], function () {
  // here you put all the routes
});
person Marcin Nabiałek    schedule 07.02.2016
comment
Спасибо за ваш ответ. Но я уже добавил это в kernal.php. У меня есть решение. проблема заключалась в том, что я добавил die в метод контроллера, из-за которого функция завершения не выполняется, и поэтому журнал не создается. - person Jitender Thakur; 09.02.2016

У меня есть решение. проблема заключалась в том, что я добавил «умереть» в метод контроллера, из-за которого функция завершения не выполняется, и поэтому журнал не создается.

person Jitender Thakur    schedule 09.02.2016