将所有PHP错误输出到数据库而不是error_log

时间:2010-05-26 08:03:41

标签: php mysql error-handling error-log

是否可以将所有PHP错误写入MySQL而不是标准的error_log文件。我想这是可能的,如果我从头开始编写自己的错误处理程序,但我有很多遗留代码,理想情况下我只会进行1次全局更改,那就是它。可以这样做吗?

2 个答案:

答案 0 :(得分:20)

我认为如果不构建自己的错误处理程序就无法完成,但从技术上讲,这是您正在寻找的全局变更。

来自manual的修改示例:

function myErrorHandler($errno, $errstr, $errfile, $errline)
{
     // you'd have to import or set up the connection here 
     mysql_query("INSERT INTO error_log (number, string, file, line) ".
                 "VALUES .....");         

    /* Don't execute PHP internal error handler */
    return true;
}

然后

// set to the user defined error handler
$old_error_handler = set_error_handler("myErrorHandler");

答案 1 :(得分:2)

看起来php函数set_error_handler可能正在寻找你正在寻找的东西。在第一个示例中,您可以添加一些mysql插入以将错误写入数据库。

http://www.php.net/manual/en/function.set-error-handler.php