Php 用户级错误跟踪

Php 用户级错误跟踪,php,Php,我正在启动一个新的项目(php),我们期望在那里有很多用户。如果人们发现一些bug,通常会发送电子邮件,或者为此在特定页面上书写 但是,有没有可能以某种方式(通过邮件或小型定制应用程序)自动让我们的开发人员知道,当用户无法使用某些东西或点击404页面时,哪里出了问题,以及用户使用了什么设备(浏览器和平台) 如果是这样的话,我们可以查看一个列表,快速找到我们网站中最有问题的地方,并在我们的用户感到恼火并写信给我们之前解决这些问题。是的,你可以这样做。有很多方法,但我向你展示了一种非常简单的方法 您

我正在启动一个新的项目(php),我们期望在那里有很多用户。如果人们发现一些bug,通常会发送电子邮件,或者为此在特定页面上书写

但是,有没有可能以某种方式(通过邮件或小型定制应用程序)自动让我们的开发人员知道,当用户无法使用某些东西或点击404页面时,哪里出了问题,以及用户使用了什么设备(浏览器和平台)


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

是的,你可以这样做。有很多方法,但我向你展示了一种非常简单的方法

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


您可以在phpip中使用htaccess处理404500等错误如果您希望有很多用户,我猜您将使用PHP框架。那些框架总是记录403404500等等。大家都发现了这个:Getsentry.com。看来它能做我想做的事。有没有人有这方面的经验?
<?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);
    }