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,当抛出(即在构造上)时,使用反射来找出函数、行号等内容。您如何找到用户的 id 取决于您如何保留它。

然后,无论您在捕获它时做什么,都调用一个方法(同样来自构造),将其记录到数据库中。

小心不要在异常代码中抛出这些自定义异常,因为它可能会在数据库错误的情况下导致无限循环。

于 2012-06-03T05:51:42.067 回答