web-dev-qa-db-ja.com

laravel

laravel 5.8に組み込まれたアプリケーションがありますプロダクションモードです。サイトはライブなので、ユーザーにエラーを表示したくありません。しかし、何らかのエラーが発生した場合は、ログ番号またはその特定の時間にスローされたエラーを示す参照が必要です。

そのため、ユーザーに"Oops何か問題が発生しましたref#123456"を表示する方法があるかどうかを知りたいと思いました。彼らが私たちにスクリーンショットまたは参照番号を送信できるように、そしてlog fileをチェックして実際に何が起こったかを追跡できるようにします。

前もって感謝します。ハッピーコーディング。

5
Faran Khan

uniqueid()関数を使用して例外のIDを作成し、アプリのレンダリング部分でビューを返すだけの簡単なものにする必要があります。

public function render($request, Exception $exception)
{
    $errorCode = uniqid('error_');

    Log::error("$errorCode", [
        //... The log information here
    ]);

    return view('welcome', compact('errorCode'));
}

上記の例として、デフォルトのwelcome.blade.phpページを使用して、以下のコンテンツを表示しています。

エラーが発生しました#error_5ec385d7c4d25

つまり、実際にログでこのエラーコードを検索して、問題の原因を特定できます。

おそらく、例外をログに記録するよりもプロフェッショナルなものが必要であり、laravelそれには望遠鏡という名前の優れたパッケージがあり、すべての例外とクエリまたはイベントのredisを取得しました。管理者だけが望遠鏡の情報にアクセスできるユーザーであり、その情報の多くはおそらく、レコードをプルーンする必要があります。

$schedule->command('telescope:Prune --hours=48')->daily();

これらすべてはドキュメントで見つけることができます: https://laravel.com/docs/telescope

0
TEFO