将PDO异常记录到error_reporting和error_log

时间:2017-07-25 16:42:37

标签: php mysql pdo error-handling error-reporting

目前我的脚本能够在浏览器上显示PDO异常,但它没有记录到错误文件。我想使用 display_errors 关闭浏览器错误消息,并使用 error_log 将其记录到文件中。我不知道是否可能,或者我是否需要编写一些自定义处理程序,或者它是否被框架覆盖。这是我的虚拟主机中的日志配置。请注意,它正在记录所有其他错误消息,包括通知。但它没有记录PDO异常。有什么想法吗?

我认为您可以忽略virtualhost配置的display_errors值。

UNION ALL

1 个答案:

答案 0 :(得分:0)

事实证明,我需要覆盖独立于错误处理程序的异常处理程序。所以我需要将异常转发给错误处理程序。从理论上讲,应该实施以下内容。

<?php
function exception_handler($exception) {
  echo "Uncaught exception: " , $exception->getMessage(), "\n";
  error_log(.....$exception->getMessage().....); //Yay it goes to my file now
}

set_exception_handler('exception_handler');

throw new Exception('Uncaught Exception');
echo "Not Executed\n";
?>

Research further here