php - 我可以使用 Zend_Log 来处理 PHP 错误吗?

标签 php zend-framework error-logging

我正在使用 Zend 开发 Web 服务,更具体地说,我是 Zend_Amf,用于与 Adob​​e Flex 进行互操作。这个问题是我不能轻易地看到 PHP 错误,因为 Flex 调试器不会显示来自服务器的实际答案,除非它们是正确的 Amf。如果我使用 Web 浏览器访问 Zend_Amf 端点,我不会收到任何错误,所以错误是在执行 Amf 处理程序时出现的。现在我正在使用 firebug 检查 HTTP 流量以查看任何错误。

关于我的问题:我可以使用日志实用程序(如 Zend_Log)将所有 PHP 错误、警告和通知记录到一个文件中,而不是(或除此之外)在 HTTP 响应中发送它们吗?

最佳答案

你可以使用set_error_handler捕捉 PHP 错误并使用 Zend_Log 记录它们。

这个函数的唯一问题是它不会捕获所有的 PHP 错误,它不可能捕获语法错误等错误....

另一种方法是使用 register_shutdown_function功能

像这样:

error_reporting(E_ALL);
    ini_set('display_errors', 0);

    function shutdown(){
        $isError = false;
        if ($error = error_get_last()){
            switch($error['type']){
                case E_ERROR:
                case E_CORE_ERROR:
                case E_COMPILE_ERROR:
                case E_USER_ERROR:
                    $isError = true;
                    break;
            }
        }

        if ($isError){
            echo "Script execution halted ({$error['message']})";
        } else {
            echo "Script completed";
        }
    }

    register_shutdown_function('shutdown');

值得注意的是,即使将这两种方法结合起来,它也不会捕获所有错误,例如语法错误......但是您可以使用普通浏览器看到此类错误。

关于php - 我可以使用 Zend_Log 来处理 PHP 错误吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2190774/

相关文章:

javascript - Smarty 2 模板中的 JavaScript 不再需要 {ldelim} 和 {rdelim}

python - Django 休息框架在不同文件上记录不同级别

SVG引起的PHP解析错误

php - 有人知道如何在 Zend 框架中将 Zend_db 组件与 oci8 一起使用吗?

zend-framework - Zend_Form : data table with checkboxes

zend-framework - 访问 SocialEngine 中的 _users 表?

PHP exec() 崩溃且没有错误

PHP 图片URL 从/building.php?1=2816 到/picture 2816.png?

php - Laravel:如何更改默认登录错误消息: 'these credentials do not match our records'

php - Chrome 预览的预设打印设置