[ Laravel 5.2 ドキュメント ] サービス -- エラーとログ
1. はじめに
Laravel は、デフォルトでエラーと例外処理を設定しています。さらに、Laravel は、さまざまな強力なログ プロセッサを提供するために、Monolog ログ ライブラリも統合しています。
2. 構成
エラー詳細表示構成ファイル config/app.php のデバッグ構成オプションは、ブラウザーによって表示されるエラー詳細の数を制御します。デフォルトでは、この構成オプションは .env ファイルの環境変数 APP_DEBUG に設定されます。
ローカル開発の場合は、環境変数 APP_DEBUG を true に設定する必要があります。運用環境では、この値を false に設定する必要があります。
ログモード
Laravel は、単一、毎日、syslog、およびエラーログのログメソッドをサポートしています。たとえば、単一のファイルを生成するのではなく、ログ ファイルを毎日生成したい場合は、構成ファイル config/app.php で次のようにログ値を設定する必要があります:
'log' => 'daily'
If youアプリケーションで完全な制御が必要 Monolog 構成の場合、アプリケーションの configureMonologUsing メソッドを使用できます。 bootstrap/app.php ファイルが $app 変数を返す前に、このメソッドを呼び出す必要があります:
$app->configureMonologUsing(function($monolog) { $monolog->pushHandler(...);});return $app;
3. 例外ハンドラー
すべての例外は、report と render の 2 つのメソッドを含むクラス AppExceptionsHandler によって処理されます。以下では、これら 2 つの方法について詳しく説明します。3.1 report メソッド
report メソッドは、例外を記録し、それを Bugsnag などの外部サービスに送信するために使用されます。デフォルトでは、レポート メソッドは、例外がログに記録される基本クラスに例外を渡すだけです。例外は任意にログに記録できます。
たとえば、異なるタイプの例外を異なる方法で報告する必要がある場合は、PHP の instanceof 比較演算子を使用できます。
/** * 报告或记录异常 * * This is a great spot to send exceptions to Sentry, Bugsnag, etc. * * @param \Exception $e * @return void */public function report(Exception $e){ if ($e instanceof CustomException) { // } return parent::report($e);}
例外ハンドラーの $dontReport 属性には、ログに記録されない例外タイプが含まれています配列。デフォルトでは、404 エラー例外はログ ファイルに書き込まれません。必要に応じて、他の例外タイプをこの配列に追加できます。
3.2 render メソッド
render メソッドは、指定された例外をブラウザに送信される HTTP 応答に変換する役割を果たします。デフォルトでは、例外は応答を生成する基本クラスに渡されます。ただし、必要に応じて例外タイプを確認したり、カスタム応答を返すことができます:
/** * 将异常渲染到HTTP响应中 * * @param \Illuminate\Http\Request $request * @param \Exception $e * @return \Illuminate\Http\Response */public function render($request, Exception $e){ if ($e instanceof CustomException) { return response()->view('errors.custom', [], 500); } return parent::render($request, $e);}
4. HTTP 例外
一部の例外は、サーバーからの HTTP エラー コードを説明します。たとえば、これは「ページが見つかりません」である可能性があります。エラー (404 )、「認証失敗エラー」 (401)、またはプログラム エラーによる 500 エラー アプリケーションでこのような応答を生成するには、次のメソッドを使用します:
abort(404);
abort(403, 'Unauthorized action.');
カスタム HTTP エラー ページ
Laravel を使用すると、複数の HTTP ステータス コードを含むエラー ページを簡単に返すことができます。たとえば、404 エラー ページをカスタマイズしたい場合は、resources/views/errors/404.blade.php ファイルを作成します。ファイルを与えると、プログラムによって生成されたすべての 404 エラーがレンダリングされます。
変更されたディレクトリ内のビューの名前は、対応する HTTP ステータス コードと一致する必要があります。
5. ログ
Laravel ログ ツールは、強力な Monolog ライブラリに基づいており、デフォルトで、Laravel は storage/logs ディレクトリにログ ファイルを毎日生成するように設定されています。ログにログ情報を書き込みます。そしてデバッグ
。
<?phpnamespace App\Http\Controllers;use Log;use App\User;use App\Http\Controllers\Controller;class UserController extends Controller{ /** * 显示指定用户的属性 * * @param int $id * @return Response */ public function showProfile($id) { Log::info('Showing user profile for user: '.$id); return view('user.profile', ['user' => User::findOrFail($id)]); }}
Log::emergency($error);Log::alert($error);Log::critical($error);Log::error($error);Log::warning($error);Log::notice($error);Log::info($error);Log::debug($error);
Log::info('User failed to login.', ['id' => $user->id]);

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

PHP開発における固体原理の適用には、次のものが含まれます。1。単一責任原則(SRP):各クラスは1つの機能のみを担当します。 2。オープンおよびクローズ原理(OCP):変更は、変更ではなく拡張によって達成されます。 3。Lischの代替原則(LSP):サブクラスは、プログラムの精度に影響を与えることなく、基本クラスを置き換えることができます。 4。インターフェイス分離原理(ISP):依存関係や未使用の方法を避けるために、細粒インターフェイスを使用します。 5。依存関係の反転原理(DIP):高レベルのモジュールと低レベルのモジュールは抽象化に依存し、依存関係噴射を通じて実装されます。

記事では、PHP 5.3で導入されたPHPの後期静的結合(LSB)について説明し、より柔軟な継承を求める静的メソッドコールのランタイム解像度を可能にします。 LSBの実用的なアプリケーションと潜在的なパフォーマ

システムが再起動した後、UnixSocketの権限を自動的に設定する方法。システムが再起動するたびに、UnixSocketの許可を変更するために次のコマンドを実行する必要があります:sudo ...

PHP開発でPHPのCurlライブラリを使用してJSONデータを送信すると、外部APIと対話する必要があることがよくあります。一般的な方法の1つは、Curlライブラリを使用して投稿を送信することです。

記事では、入力検証、認証、定期的な更新など、脆弱性から保護するためのフレームワークの重要なセキュリティ機能について説明します。

この記事では、フレームワークにカスタム機能を追加し、アーキテクチャの理解、拡張ポイントの識別、統合とデバッグのベストプラクティスに焦点を当てています。
