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


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

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

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

4 ответа:

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

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

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

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

во-первых, чтобы вызвать сообщение об ошибке:

trigger_error("Error message here", E_USER_ERROR);

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

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

обратите внимание, что выбранный файл журнала должен уже существовать и быть доступен для записи серверным процессом. Самый простой способ сделать файл возможность записи-это сделать пользователя сервера владельцем файла. (Пользователь сервера может быть nobody, _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];

больше OIN касается вопроса часть 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);