站点代码使用了 ajax/php,而ajax端偏偏没有把php的错误信息完整处理,httpd log 日志中也没做记录。
有时候代码运行错误后,居然莫名其妙,没人能提示出现了什么错误。除了在 error_log 中有 几句
PHP Fatal error: Uncaught exception 'Exception' ...
之外没有更详细的错误信息。
不过好在这个提示有个
in xxx file.php:51
有行数在,我们可以通过增加日志输出
error_log(string message)
这样就可以在日志文件中进行详细的日志查询。当然调试完毕后应该把它屏蔽,不然日志文件会增加很多无用信息。
不过话说回来,每次调试都要修改那么多地方做注释,不如直接在总的包含文件中定义了,比如把下面的代码加入到最底层的包含文件中(例如: general.inc.php)
define("DEBUG", 1);
if (DEBUG)
{
error_reporting(E_ALL);
}else
{
error_reporting(E_ALL ^ E_NOTICE ^ E_WARNING);
}
...
要调试的文件中做个判断:
if (DEBUG)
{
error_log("we are here or something like this");
}