【发布时间】:2012-03-02 03:27:22
【问题描述】:
我有一个每天在服务器上运行的脚本,用于从没有 HTML 输出的资源中下载数据。默认情况下,PHP 会将我的脚本错误输出到php_error.log 和 NetBeans 中的输出窗口。
我创建了一个用户错误处理程序:
// user defined error handling function
function userErrorHandler($errno, $errmsg, $filename, $linenum, $vars)
{
error_log($errmsg, 3, "logs/aem.log");
switch ($errno) {
case E_ERROR:
exit("Error grave $errmsg at $filename:$linenum");
break;
case E_USER_ERROR:
exit("Error grave $errmsg at $filename:$linenum");
break;
}
}
error_reporting(0);
set_error_handler('userErrorHandler');
我将此文件包含在我的主脚本中,一切正常。
在开发应用程序时,我希望继续在 Netbeans 的输出屏幕上看到错误消息,并保留错误日志文件(与默认处理程序一样)。我尝试更改 error_reporting 的值或添加额外的 error_log 函数,尝试以下值:
error_reporting(E_ALL | E_STRICT);
error_reporting(-1);
error_log($errmsg, 0);`
但除非我从文件中删除 include('mycustomhandler');,否则我永远不会在输出中收到错误。
如何模拟标准错误处理程序的行为?
【问题讨论】:
标签: php error-handling error-reporting