记录PDO异常error_reporting和error_log

问题描述:

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

我认为你可以忽略虚拟主机配置的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 
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