PHP记录所有错误

  • 本文关键字:有错误 记录 PHP php
  • 更新时间 :
  • 英文 :


我想记录 php in database 中的所有错误。我如何在变量中获取所有错误。

在以下代码中,未确定的$ A已打印。但是它没有抓住。

$error = "";
try
{
     echo $a; // not declared
}
catch(Exception $e)
{
    $error = $e->getMessage();
}

输出

Notice (8): Undefined variable: a [APPControllerCronJobsController.php, line 71]

通知不是一个例外,因此不能将其捕获{} catch {}块。与警告类似。

通常,将error_retport级别的级别提出一个更好的主意,以便它们在您的开发环境中显示这些级别,这样您就被迫处理这些问题。

但是,要捕获它们并以另一种方式处理它们,您想设置一个自定义错误处理程序。您可以让自定义错误处理程序捕获某些错误。

<?php
// set custom handler for NOTICES
// $oldHandler will allow you to reset the handler back to PHP default later 
$oldHandler = set_error_handler('myErrorHandler', E_NOTICE|E_WARNING);
function myErrorHandler($errno, $errstr, $errfile, $errline) {
  // log to DB in here
  // $db->query("INSERT INTO error_log (errno, errstr... ) VALUES (...)");
  // return false to let the error bubble up and get caught by default error handler
  // return false;
  // return true to tell PHP you've dealt with it
  return true;
}
 // YOUR SAMPLe CODE SHOULD NOW CAPTURE THE NOTICE
 $error = "";
 try 
 {
    echo $a; // not declared
 } 
 catch( Error $e) 
 {
   $error = $e->getMessage();
 }
?>

相关内容

最新更新