日志传递到自定义文件时出错


error log handeling to custom file

我想记录通过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.不生成错误,它只控制显示错误的级别。当发生错误时,总是生成其堆栈跟踪。