PHPで集中管理された方法でエラー報告を処理する方法はありますか?私は電子メールで私のアプリケーションによって提起されたすべてのエラーを通知されたいと思います。PHPで集中管理されたエラー報告
アプリケーション全体でこれを達成する最も良い方法は何ですか?
おかげ
PHPで集中管理された方法でエラー報告を処理する方法はありますか?私は電子メールで私のアプリケーションによって提起されたすべてのエラーを通知されたいと思います。PHPで集中管理されたエラー報告
アプリケーション全体でこれを達成する最も良い方法は何ですか?
おかげ
Kaliumが言及したように、あなたはset_error_handler
を使用したいと思うでしょうが、それだけであなたの一部を得ることができます。また、キャッチされない例外をトラップする必要があります。そのためには、set_exception_handler
を使用してください。
私が自分で行っているのは、コードトラップエラーがあり、そのエラーを私が他の場所でキャッチできる例外を適切に変換することです。キャッチされていないものについては、デフォルトの例外ハンドラを使用してログとレポートを作成し、必要に応じて適切なエラーを表示します。
あなたは、実行時に、あなたが好きなようにエラーを処理するためにset_error_handlerを使用することができます。
エラーの3種類があります、このような警告やPHPによって発生した致命的なエラーとして
システムエラーは、。 404エラーもこのカテゴリに含まれます。
不正な、または失敗したクエリまたはデータベース接続によるデータベースエラー。
エラーの3種類すべてを処理するErrorHandler
クラスを作成する最適な方法。システムエラーの場合は、set_error_handler
を使用するか、this oneなどのオンラインチュートリアルの1つを読んでください。
データベースの場合、すべてのクエリを処理する集中データベースクラスを使用することをお勧めします。このようなものに使用:論理エラーのために
$result=mysql_query($sql);
if (! $result)
{
$ErrorHandler->dbError(mysql_error(), $sql);
}
、こうした期待されるファイルやデータベースレコードが見つからないの誤差などを、あなたは同じErrorHandlerのクラスを呼び出すと同じような何かをするだろう:
if ($logicalError)
{
$ErrorHandler->appError('Something bad happened',__LINE__, __FILE__);
$ErrorHandler->showAppErrorPage();
}
ここでは、__FILE__
と__LINE__
の定数は、このエラーが発生した場所を正確に示します。 php.netサイトでそれらを読んでください。
あなたのErrorHandler
クラスはすべてのエラーをログファイルに記録したり、あなたにメールしたり、あなたの携帯電話のSMS /テキストに記録することができます。また、ユーザーをエラーページにリダイレクトするために使用することもできます。