我想记录通过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'的访问(使用密码:NO)或致命错误:调用C:''examplep''htdocs中未定义的函数blabla()。。。''第125行的index.php
有办法做到这一点吗?
thnx处于高级状态。
使用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.不生成错误,它只控制显示错误的级别。当发生错误时,总是生成其堆栈跟踪。