用户级别的Bug跟踪

时间:2013-05-16 09:51:37

标签: php

我正在启动一个新项目(php),我们期待很多用户。如果人们发现了一些错误,或者他们在特定的页面中写这封邮件,他们通常会发送电子邮件。

但是,当某个用户无法通过邮件或小型自定义应用程序自动让我们的开发人员知道这些内容时(或通过邮件或小型自定义应用程序),当用户无法正常工作或访问404页面时,可能会出现错误以及设备(浏览器)和用户使用过的平台?

如果是这样,我们可以查看列表并快速找到我们网站中最有问题的区域,并在用户感到恼火之前解决这些问题,以便他们写信给我们。

1 个答案:

答案 0 :(得分:2)

是的,你可以这样做。有很多方法,但我告诉你一个非常简单的方法来做到这一点,

您需要创建自定义错误自定义错误处理程序。在那里,您可以处理所有错误并将其包含在电子邮件和日志中

See For details

<?php
    function errorHandler($errno, $errstr, $errfile, $errline) {
        static $db;
        if (empty($db)) {
            $db = new PDO(DSN, DBUSER, DBPASS);
        }

        $query = "INSERT INTO errorlog (severity, message, filename, lineno, time) VALUES (?, ?, ?, ?, NOW())";
        $stmt = $db->prepare($query);

        switch ($errno) {
            case E_NOTICE:
            case E_USER_NOTICE:
            case E_DEPRECATED:
            case E_USER_DEPRECATED:
            case E_STRICT:
                $stmt->execute(array("NOTICE", $errstr, $errfile, $errline));
                break;

            case E_WARNING:
            case E_USER_WARNING:
                $stmt->execute(array("WARNING", $errstr, $errfile, $errline));
                break;

            case E_ERROR:
            case E_USER_ERROR:
                $stmt->execute(array("FATAL", $errstr, $errfile, $errline));
                exit("FATAL error $errstr at $errfile:$errline");

            default:
                exit("Unknown error at $errfile:$errline");
        }
    }

    set_error_handler("errorHandler");

    $test = 5;
    if ($test > 1) {
       trigger_error("Value of \$test must be 1 or less", E_USER_NOTICE);
    }

你可以做任何想要的事情。电子邮件或日志事件:)