我想记录由error_reporting(E_ALL)生成的所有错误;在日志文件中。 因此,当PHP脚本中出现错误时,您可以正常看到错误。 我尝试了很多东西,但我最接近的是白衣
asdasc(); // generate error
$i=error_get_last();
if($i['message']!==''){
error_log(date('Y-m-d-h:m:s') . " | type = " .$i ['type']." message = " .$i ['message']." file = " .$i ['file']." line = " .$i ['line'] , 3, "my-errors.log");}
这种方式我看到日期有错误,但我想看到的是我应该看到的错误,如果它在我的屏幕上。类似的东西:
SQLSTATE [HY000] [1045]拒绝访问用户' root' @' localhost' (使用密码:否)或
致命错误:在第125行的C:\ xampp \ htdocs ... \ index.php中调用未定义的函数blabla()
有办法做到这一点吗?
先进的thnx。答案 0 :(得分:1)
使用error_get_last()
:
error_log(date('Y-m-d-h:m:s') . " | error = " . print_r(error_get_last(), true), 3, "my-errors.log");
您也可以在应用程序中设置自己的错误处理类:
class MyErrorHandlerClass
{
public function MyErrorHandlerMethod($errno, $errmsg, $filename, $linenum, $vars)
{
// log you error
}
}
然后您可以定义自己的错误处理程序:
$ErrorHandler = new MyErrorHandlerClass();
set_error_handler(array($ErrorHandler, 'MyErrorHandlerMethod'));
error_reporting()
btw。不会产生错误,它只控制显示错误的级别。发生错误时,始终会生成其堆栈跟踪。