我想附加到每個錯誤日誌,錯誤發生之前用戶請求的頁面的網址。日誌已經給我發生錯誤的地方,但是對我知道url是很有價值的。錯誤日誌laravel 5與發生錯誤的網址
我看到有一個Handler.php文件,但我如何在那裏追加url?
我想附加到每個錯誤日誌,錯誤發生之前用戶請求的頁面的網址。日誌已經給我發生錯誤的地方,但是對我知道url是很有價值的。錯誤日誌laravel 5與發生錯誤的網址
我看到有一個Handler.php文件,但我如何在那裏追加url?
這是很簡單的,你的應用程序/例外/ Handler.php在頂部的它添加這兩名外援:
use Request;
use Log;
然後在您的報告方法,補充一點:
public function report(Exception $e) {
Log::info($e->getMessage(), [
'url' => Request::url(),
'input' => Request::all()
]);
return parent::report($e);
}
現在,無論何時出現異常,都會記錄當前網址並請求參數GET或POST也將被記錄:這樣做的
[2016-02-10 19:25:13] local.INFO: Error Processing Request {"url":"http://localhost:8002/list","input":{"name":"fabio","surname":"antunes"}}
更好的方法:
在應用程序\例外\處理器延長Laravel的基礎上下文()功能:
/**
* Get the default context variables for logging.
*
* @return array
*/
protected function context()
{
try {
return array_filter([
'url' => Request::fullUrl(),
'input' => Request::except(['password', 'password_confirmation']),
'userId' => Auth::id(),
'email' => Auth::user() ? Auth::user()->email : null,
]);
} catch (Throwable $e) {
return [];
}
}
作品像魅力。謝謝你們,非常有用。 – sebasparola
我發現了一個難題:確保在寫入日誌之前從Request :: all()數組中取消設置'password'和'password_confirmation'。主要的安全風險! – Ryan
我認爲最好不要包含輸入,用url +錯誤的行就足以啓動調試 –