0

私は、エラーのログをアプリケーションのデータベース テーブルに一元化する手段として、例外処理を使用しています。set_exception_handler() を使用して、この情報をログに記録し、ユーザーにエラーを表示しないようにエラーの後にサイレントに続行する関数に例外をルーティングしました。以下を発行するだけで db テーブルにメッセージを送信できるため、これは特にデバッグに役立ちました。

throw new Exception("My message I want to check in the db table");

ローカル ログ ファイルではなく、デバッグする db テーブルを確認します。本質的に、私の目標は、複数サーバーの負荷分散状況でローカル Web サーバー ログ ファイルを検索する必要性を軽減する error_log() 関数機能を置き換えることです。

クラスファイルを書き始めて同じことをするまで、つまり、同様の throw ステートメントを使用して情報を返すまで、私にとってはうまく機能していました。クラス内の関数でこれを実行しようとすると、クラスがインスタンス化された呼び出し元のコードまで、コードの実行が続行されません。例外を db テーブルに記録した後、コードの実行は文字通りサイレントに停止します。ロギング後もコードを実行し続けたい。

これは、私が認識していない php の文書化された動作ですか? これを変更したり、アプリケーション コードの残りの部分と同じように動作するようにクラス ファイルを設定したりするにはどうすればよいですか?

前もって感謝します!

4

0 に答える 0