Laravel – 將錯誤寫入 Log 的時候,連帶網址與輸入參數的方法

假如我們想把錯誤寫入 log 的話,要觀察網址或傳遞的參數,我們可以添加方法 context() 來取代繼承 vendor\laravel\framework\src\Illuminate\Foundation\Exceptions\Handler.php。

app\Exceptions\Handler.php

use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Request;
...

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 [];
    }
}

url, input 是我們自訂的,這樣在查看 log 的時候就能看到參數囉。參考

發表迴響