Как выполнить регистрацию ошибок в CodeIgniter (PHP)

Я хочу регистрировать ошибки в PHP CodeIgniter. Как включить ведение журнала ошибок?

У меня есть несколько вопросов:

  1. Каковы все шаги для регистрации ошибки?
  2. Как создается файл журнала ошибок?
  3. Как направить сообщение об ошибке в файл журнала (всякий раз, когда возникает ошибка)?
  4. Как вы отправляете по электронной почте эту ошибку на адрес электронной почты?

Related of "Как выполнить регистрацию ошибок в CodeIgniter (PHP)"

CodeIgniter имеет встроенные функции регистрации ошибок.

  • Сделайте папку / приложение / журнал доступной для записи
  • В наборе /application/config/config.php
    $config['log_threshold'] = 1;
    или используйте большее число, в зависимости от того, сколько деталей вы хотите в своих журналах
  • Используйте log_message('error', 'Some variable did not contain a value.');
  • Чтобы отправить электронное письмо, вам необходимо расширить основной метод класса log_exceptions() . Вы можете сделать это самостоятельно или использовать это . Дополнительная информация о расширении ядра здесь

См. http://www.codeigniter.com/user_guide/general/errors.html.

Чтобы просто поместить строку в журнал ошибок сервера, используйте функцию error_log () PHP. Однако этот метод не отправит электронное письмо.

Во-первых, чтобы вызвать ошибку:

 trigger_error("Error message here", E_USER_ERROR); 

По умолчанию это будет отображаться в файле журнала ошибок сервера. См. Директиву ErrorLog для Apache. Чтобы установить собственный файл журнала:

 ini_set('error_log', 'path/to/log/file'); 

Обратите внимание, что файл журнала, который вы выберете, уже должен существовать и быть перезаписываемым процессом сервера. Самый простой способ сделать файл доступным для записи – сделать владельца сервера владельцем файла. (Пользователю сервера может быть никто, _www, apache или что-то еще, в зависимости от вашего дистрибутива ОС.)

Чтобы отправить сообщение по электронной почте, вам необходимо настроить собственный обработчик ошибок:

 function mail_error($errno, $errstr, $errfile, $errline) { $message = "[Error $errno] $errstr - Error on line $errline in file $errfile"; error_log($message); // writes the error to the log file mail('you@yourdomain.com', 'I have an error', $message); } set_error_handler('mail_error', E_ALL^E_NOTICE); 

Для получения дополнительной информации см. Соответствующую документацию по PHP .

Также убедитесь, что вы разрешили codeigniter регистрировать тип сообщений, которые вы хотите в файле конфигурации.

т.е. $config['log_threshold'] = [log_level ranges 0-4];

Еще вопрос касается вопроса 4. Как вы отправляете эту ошибку по электронной почте на адрес электронной почты? Функция error_log также имеет адрес электронной почты. http://php.net/manual/en/function.error-log.php

Ага, здесь я нашел пример, который показывает использование. Отправить сообщение об ошибке по электронной почте с помощью error_log ()

 error_log($this->_errorMsg, 1, ADMIN_MAIL, "Content-Type: text/html; charset=utf8\r\nFrom: ".MAIL_ERR_FROM."\r\nTo: ".ADMIN_MAIL);