Пользовательский способ записать исключение в codeigniter - PullRequest
0 голосов
/ 16 апреля 2019

Я пытаюсь создать обработчик исключений для codeIgniter, который срабатывает при возникновении ошибки, и он записывает все входные данные, вызвавшие исключение, и выходные данные, выданные исключением, в чистом чистом формате в текстовом файле.

Насколько я мог записать исключение только в файл журнала, используя функцию журнала. в файле шаблона error_db я извлек значение сообщения и вставил его в файл журнала.

   <div id="container">
    <h1><?php echo $heading; ?></h1>
    <?php echo $message; 

     $formatted_msg = str_replace('</p>','',$message);
     $formatted_msgs = explode('<p>',$formatted_msg);
     $messages = $formatted_msgs[1].'    -->    '.$formatted_msgs[4].'    -->    '.$formatted_msgs[5];
     log_message('error',$messages);

    ?>
</div>

Я хочу показать результат следующим образом: Какая функция, какой вход и какая строка вызвали исключение и результат. Теперь я получаю данные как

    ERROR - 2019-04-16 15:28:40 --> Error Number: 1054    -->    Filename: file_path/system/database/DB_driver.php    -->    Line Number: 691

1 Ответ

0 голосов
/ 17 апреля 2019

Я следовал этому методу и получил ответ.https://stackoverflow.com/a/15860744/11367846

И добавил некоторые настройки для моего требования.На странице контроллера в ловушке исключения добавлен код для настраиваемого журнала.

public function controller_method( )
{
try
{
    // normal flow
}
catch( Exception $e )
{
    $trace = $e->getTrace();

    $result = 'Exception: "';
    $result .= $e->getMessage();
    $result .= '" @ ';
    if($trace[4]['file'] != '') {
      $result .= ' File : '.$trace[4]['file'].'::: Line : '.$trace[4]['line'].' ::: Source :'.$trace[5]['class'].' -> '.$trace[5]['function'].' ::: Function : '.$trace[4]['class'].' -> '.$trace[4]['function'].' ::: Inputs :'.http_build_query($trace[4]['args']);
    }

    log_message( 'error', $result );
}

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...