0

ニュースレター CMS を構築しています。タイムスタンプ、エラー、ユーザー ID、機能情報などの情報を含むデータベースにエラーを記録したいと考えています。これを行う最善の方法は何ですか?

エラーを処理し、PDO を使用して MYsql テーブルにエラーを入力するクラスを作成する必要があると考えています。

擬似コード:

    class sbmtErr
{
   private $errStrng;

   protected function sndErr($err, $usrData, $mthd){

      $sndErrPDO = new myPDO;

      $this->errStrng = "INSERT INTO errTbl (error, userID, method) VALUES ('".$err."', ".usrData['usrID'].", '".$mthd."')";

      $sndErrPDO->sqlQry($errStrng);
   }
}

ここでの問題は、エラーをスローしたメソッドを特定する方法がわからないことです。

これを行うより良い方法はありますか?

ありがとう。

4

1 に答える 1

1

例外クラスを拡張します。CMSErrorExceptionがスローされたとき (つまり、On コンストラクト) は、リフレクションを使用して、関数、行番号などを見つけます。ユーザーの ID を見つける方法は、それをどのように保持するかによって異なります。

次に、それをキャッチしたときに何をするかに関係なく、それをデータベースに記録するメソッドを (再び構造体から) 呼び出します。

データベース エラーの場合に無限ループが発生する可能性があるため、これらのカスタム例外を例外コード内でスローしないように注意してください。

于 2012-06-03T05:51:42.067 に答える