站点代码使用了 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");
}
本文介绍了一种在PHP项目中增加详细错误日志的方法,通过在代码中加入error_log函数,可以在HTTPd log中获取到更详尽的错误信息,便于定位问题。此外,还提供了一种在开发和生产环境中灵活调整错误报告级别的方案。
1064

被折叠的 条评论
为什么被折叠?



