记录 PDO 异常以error_reporting和error_log

Logging PDO exception to error_reporting and error_log

提问人:codelogn 提问时间:7/26/2017 更新时间:7/28/2017 访问量:1333

问:

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

我认为您可以忽略我的虚拟主机配置的display_errors值。

    php_admin_flag log_errors on
    php_admin_flag display_errors on
    php_admin_value error_reporting 30719
    php_admin_value error_log "/....PATH/php.error.log"
php mysql pdo 处理 错误 报告

评论


答:

0赞 codelogn 7/28/2017 #1

事实证明,我需要覆盖独立于错误处理程序的异常处理程序。因此,我需要将异常转发给错误处理程序。从理论上讲,应实现以下几点。

<?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";
?>

在这里进一步研究