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

Я хочу регистрацию ошибок в PHP CodeIgniter. Как я включаю регистрацию ошибок?

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

  1. Что все шаги должны зарегистрировать ошибку?
  2. Как файл регистрации ошибок создается?
  3. Как продвинуть сообщение об ошибке в файл журнала (каждый раз, когда ошибка происходит)?
  4. Как Вы посылаете ту ошибку по электронной почте на адрес электронной почты?
83
задан Eric Leschinski 1 April 2014 в 16:58
поделиться

2 ответа

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

  • Сделайте вашу папку / application / logs доступной для записи
  • В / application / config / config. php установите
    $ config ['log_threshold'] = 1;
    или используйте большее число, в зависимости от того, сколько подробностей вы хотите в своих журналах
  • Используйте log_message ('error', «Какая-то переменная не содержала значения.»);
  • Чтобы отправить электронное письмо, вам необходимо расширить основной метод класса CI_Exceptions log_exceptions () . Вы можете сделать это самостоятельно или использовать это . Подробнее о расширении ядра здесь

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

166
ответ дан 24 November 2019 в 08:48
поделиться

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

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

trigger_error("Error message here", E_USER_ERROR);

По умолчанию она попадает в файл журнала ошибок сервера. См. директиву ErrorLog для 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 для получения дополнительной информации.

24
ответ дан 24 November 2019 в 08:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: