ホームページ >バックエンド開発 >PHPチュートリアル >PHPフレームワークのロギングシステム
1 set_Exception_handler(callback $Exception_handler); //例外キャプチャカスタムハンドラー関数の登録
1 set_error_handler(callback $error_handler); //エラーキャプチャカスタムハンドラー関数の登録
1 register_shutdown_function(callback $callback); //プログラム実行時の異常終了エラーキャプチャハンドラ関数の登録
2. ロギング関連ライブラリ
最初の部分で紹介したものは例外、エラー、シャットダウンのみをキャプチャします。これは最初のステップにすぎません。次に、ログ情報をローカル ファイル システムに記録するなど、キャプチャされた情報を適切に処理する必要があります。操作は array("MyException", "ExceptionHandler")) 内にあり、ログ クラス ライブラリが使用されます。 (以下で説明するクラス ライブラリは、kohana ログ システムの設計を利用しています)。
日本語形式のログもファイルの最後に情報を追加するだけで簡単に実装できると思いますが、設計が必要です。便利で効率的で拡張されたロギング クラス ライブラリですが、これはそれほど単純ではありません。長期的な練習、要約、最適化が必要です。kohana フレームワークのロギング ライブラリは比較的成熟しているため、ここで参照できます。
kohana を使用したことのあるユーザーは、kohana フレームワークでのログインについてよく知っていると思います。詳しくなくても問題ありません。アプリケーションの 109 番で簡単に説明します。 kohana ソース コードの bootstrap.php ファイル — 112 行目に次のコードがあります:
に logging オブジェクト を追加するものです。オリーブ色の背景を持つ 2 つは、kohana では 2 つの部分に分かれていることに注意してください。ログ オブジェクトは、ログ オブジェクトのリストを維持するために使用されます。これは実際には 1 つ以上のログ オブジェクトを含むコンテナのようなものです (これは 2 番目の部分です。これらのログ オブジェクトがログの実際のソースです)。オブジェクト)、ログ)、および各オブジェクトについて記録されるエラー レベルの配列。エラー レベルが満たされていない場合は省略されます。名前を変更した後の私自身の簡略化されたロギング方法は次のとおりです: リーリー
ログとログライターの関係
上の図から、Log はさまざまな特定のログライター オブジェクトを含むコンテナであることがわかります。各オブジェクトは、エラー情報がファイルに書き込まれるときに、それぞれの Logwriter が実行されるかどうかを確認します。エラー メッセージにエラーを記録します。エラー メッセージ内のレベルがログライターに含まれていない場合、そのレベルは無視されます。
このパートは最初のパートとどのように連携しますか?実際、例外が例外によってキャッチされると、エラー メッセージ (エラーの場所、エラー コード、エラー メッセージなどを含む) を Log コンテナーの errormessage 配列に追加するために呼び出されます。プログラムの終了後にこの情報をファイルに書き込みます。kohana コードを読むと、1 つのエラーで複数のエラーが発生する可能性があるため、Kohana への直接書き込みが最適化されていないことがわかります。 php の実行でエラーが発生した場合は、一度記録するだけで済みます。これにより、プログラムが戻るまでに余分な IO と時間がかかります。そのため、kohana のアプローチでは、デフォルトですべてのエラー、例外、ログを Log::$errormessage に保存します。ライター操作は register_shutdown_function を登録します。この関数の機能は、上記の最初の部分でも使用されます。ログ レコードは、この PHP の実行に大きな影響を与えません。
3. 例の概要
この時点で、ログ システムの概要は理解できているはずです。使用する「ログ システム」を作成できます。これは、コードが含まれている私の「ログ システム」の例を見てみましょう。必要に応じて例をご覧ください。
https://github.com/AizuYan/phplog.git
この記事の著作権は著者(luluyrt@163.com)とブログパークに帰属します。記事を転載した後は、著者と原文リンクを明示する必要があります。記事ページに明確な立場がなければ、法的責任が追及されます。
上記では、PHP フレームワークのログ システムをその側面も含めて紹介しましたが、PHP チュートリアルに興味のある友人に役立つことを願っています。