日本語Englishイントロダクション設定(エラー詳細ログストレージログレベルカスタムMonolog設定)例外ハンドラ(ReportメソッドRenderメソッド)HTTP例外(カスタムHTTPエラーページ)ログイントロダクション新しいLaravelプロジェクトを開始する時点で、エラーと例外の処理は既に設定済みです。App\Exceptions\Handlerクラスはアプリケーションで発生する全例外をログし、ユーザへ表示するためのクラスです。このドキュメントでは、このクラスの詳細を確認していきます。パワフルで様々なログハンドラをサポートしているMonologをLaravelはログに利用しています。単一ログファイルへのログ、一定期間ごとのログファイル切り替え、システムログへのエラー情報の書き込みを選べるように、Laravelはハンドラをあらかじめ準備しています。設定エラー詳細アプリケーションエラー発生時にユーザに対し表示する詳細の表示量は、config/app.php設定ファイルのdebug設定オプションで決定します。デフォルト状態でこの設定オプションは、.envファイルで指定されるAPP_DEBUG環境変数の値を反映します。local環境ではAPP_DEBUG環境変数をtrueに設定すべきでしょう。実働環境ではこの値をいつもfalseにすべきです。実働環境でこの値をtrueにしてしまうと、アプリケーションのエンドユーザへ、セキュリティリスクになりえる設定情報を表示するリスクを犯すことになります。システムログ(syslog)、エラーログ(errorlog)ログモードへのログ情報書き込みをサポートしています。Laravelが使用するストレージ機構の設定は、config/app.php設定ファイルのlogオプションを変更します。単一ファイルではなく、日別のログファイルを使用したい場合、app設定ファイルのlogの値に、dailyを設定してください。&#39;daily&#39;日別ログファイルの最大数dailyログモード使用時にLaravelはデフォルトで、5日分のログファイルだけを残します。保存しておくファイルの数を調整したいときは、app設定ファイルのlog_max_files設定値を変更してください。30ログレベルMonologでは、異なった重大さのレベルのログを扱えます。Laravelはデフォルトで全ログレベルをストレージに書き込みます。実働環境ではapp.php設定ファイルのlog_levelオプションへ、ログすべき最低の重大さレベルを指定したいことでしょう。このオプションを一度設定すると、Laravelは指定された重大さ以上の全レベルをログします。log_levelにerrorを設定すると、error、critical、alert、emergencyメッセージがログされます。Monologは以下の重大さレベルを取り扱います:debug、info、notice、warning、error、critical、alert、emergencyカスタムMonolog設定Monologがアプリケーションのために設定している内容を完全にコントロールしたければ、アプリケーションのconfigureMonologUsingメソッドを使ってください。このメソッドはbootstrap/app.phpファイルの中の$app変数が返される直前に呼びださなくてはなりません。$app;例外ハンドラreportメソッド全例外はApp\Exceptions\Handlerクラスで処理されます。このクラスはreportとrender二つのメソッドで構成されています。両メソッドの詳細を見ていきましょう。reportメソッドは例外をログするか、BugSnagやSentryのような外部サービスに送信するために使います。デフォルト状態のreportメソッドは、ただ渡された例外をベースクラスに渡し、そこで例外はログされます。好きなように例外をログすることが可能です。異なった例外を別々の方法レポートする必要がある場合、PHPのinstanceof比較演算子を使ってください。例外ハンドラの$dontReportプロパティーは、ログしない例外のタイプの配列で構成します。404エラー例外と同様に、他のタイプの例外もログしたくない場合です。必要に応じてこの配列へ、他の例外を付け加えてください。\Illuminate\Validation\ValidationException::class,];renderメソッドrenderメソッドは与えられた例外をブラウザーに送り返すHHTPレスポンスへ変換することに責任を持っています。デフォルトで例外はベースクラスに渡され、そこでレスポンスが生成されます。例外のタイプをチェックし、お好きなようにレスポンスを返してかまいません。例外の中にはサーバでのHTTPエラーコードを表しているものがあります。「ページが見つかりません」エラー(404)や「未認証エラー」(401)、開発者が生成した500エラーなどです。アプリケーションのどこからでもこの種のレスポンスを生成するには、abortヘルパを使用します。abort(404);abortヘルパは即座に例外を発生させ、その例外は例外ハンドラによりレンダーされることになります。オプションとしてレスポンスのテキストを指定することもできます。action.&#39;);カスタムHTTPエラーページ様々なHTTPステータスコードごとに、Laravelはカスタムエラーページを簡単に返せます。HTTPステータスコードに対してカスタムエラーページを返したければ、resources/views/errors/404.blade.phpを作成してください。このファイルはアプリケーションで起こされる全404エラーに対し動作します。ビューはこのディレクトリに置かれ、対応するHTTPコードと一致した名前にしなくてはなりません。abortヘルパが生成するHttpExceptionインスタンスは、$exception変数として渡されます。ログLaravelのログ機能は、強力なMonologライブラリーのシンプルな上位レイヤーを提供します。Laravelはデフォルトで、アプリケーションの日別ログファイルをstorage/logsディレクトリへ作成するように設定されています。ログへ情報を書き込むにはLogファサードを使います。Log::info(&#39;ユーザのプロフィール表示。debugの8レベルをサポートしています。Log::emergency($message);Log::alert($message);Log::critical($message);Log::error($message);Log::warning($message);Log::notice($message);Log::info($message);Log::debug($message);コンテキストデータログメソッドにはコンテキストデータを配列で渡すこともできます。このコンテキストデータはログメッセージと一緒に整形され、表示されます。$user-&gt;id]);裏で動作するMonologインスタンスへのアクセスMonologはログに使用できる様々な追加のハンドラを提供しています。必要であれば、Laravelが裏で使用しているMonologインスタンスへアクセスすることもできます。readme.md).これは次期リリース版の翻訳で、コミュニティにより翻訳されています。