1137716847 发表于 2017-10-24 10:05:23

如何捕获CI反馈的错误信息,并将其存储到数据库中?

本帖最后由 1137716847 于 2017-10-24 11:01 编辑

如何捕获CI反馈的错误信息(包含致命错误),并将其存储到数据库中?

1137716847 发表于 2017-10-24 11:53:04

用了一个比较笨的方法解决了

1137716847 发表于 2017-10-24 11:56:27

本帖最后由 1137716847 于 2017-10-24 14:25 编辑

在system\core\Common.php的第620行加入
<?php
                require_once APPPATH . 'hooks/AnomalyCapture.php';
                (new AnomalyCapture())->capture(array(
                        'type' => $severity,
                        'message' => $message,
                        'file' => $filepath,
                        'line' => $line,
                ) , $is_error);
?>

屏蔽掉第640行的exit(1)

在 application\hooks 中新建AnomalyCapture.php


<?php
class AnomalyCapture{

      function capture($last_error , $is_error = false){
                if( ! isset($last_error)) return false;

               
                $CI = CI_Controller::get_instance();
                if($CI == NULL){
                        require_once BASEPATH.'core/Controller.php';
                        $CI = new CI_Controller;
                        $CI = CI_Controller::get_instance();
                }

                $CI->load->model('Admin_user_model');

                $CI->Admin_user_model->test();
                if($is_error) exit(1);
      }      

}
?>


binhaiit 发表于 2017-10-27 10:02:20

这个确实可以通过添加hooks解决,但不建议修改核心代码。原来见过相应的代码,现在找不到了。回头有空我再找一下。{:1_1:}
页: [1]
查看完整版本: 如何捕获CI反馈的错误信息,并将其存储到数据库中?