2017-07-30 43 views
1

當我打電話給我的服務器時,我想將URL和參數記錄到日誌或控制檯。如何在Laravel中捕獲所有請求URL

我能夠通過將下面的代碼放在我的Routes \ api.php中來捕獲所有數據庫請求。是否可以對HTTP請求執行相同的操作?

//Capture sql statements 
\Event::listen('Illuminate\Database\Events\QueryExecuted', function ($query) { 
    error_log($query->sql); 
}); 
+1

有一個事件Illuminate \ Routing \ Events \ RouteMatched,也許你可以使用那個?如果沒有,我只需要一箇中間件。 –

回答

2

你可以把它在中間件

創建新的中間件

應用程序\ HTTP \中間件\ LogRoutes.php

namespace App\Http\Middleware; 

use Closure; 

class LogRoutes 
{ 
    /** 
    * Handle an incoming request. 
    * 
    * @param \Illuminate\Http\Request $request 
    * @param \Closure $next 
    * @return mixed 
    */ 
    public function handle($request, Closure $next) 
    { 
     dd($request->getRequestUri()); 
     return $next($request); 
    } 
} 

然後加入應用程序\內核。 php

protected $middlewareGroups = [ 
    'web' => [ 
     // first in this array! 
     App\Http\Middleware\LogRoutes::class, 
     ... 
    ] 
]