В CodeIgniter, как я могу получить сообщения об ошибках PHP, отправленные мне по электронной почте?

Я хочу получать журналы ошибок по электронной почте. Например, если появляется сообщение об ошибке Warning-level, я хотел бы получить электронное письмо об этом.

Как я могу получить это в CodeIgniter?

Ответ 1

Вы можете расширить класс ядра Exception, чтобы сделать это.

Возможно, вам нужно будет отредактировать ссылку на класс электронной почты CI, не уверен, что вы можете создать экземпляр из библиотеки, подобной этой. Я не использую сам класс электронной почты CI, я использовал библиотеку Swift Mailer. Но это должно привести вас к правильному пути.

Сделайте файл MY_Exceptions.php и поместите его в/application/libraries/(Или в/application/core/для CI 2)

class MY_Exceptions extends CI_Exceptions {

    function __construct()
    {
        parent::__construct();
    }

    function log_exception($severity, $message, $filepath, $line)

    {   
        if (ENVIRONMENT === 'production') {
            $ci =& get_instance();

            $ci->load->library('email');
            $ci->email->from('[email protected]', 'Your Name');
            $ci->email->to('[email protected]');
            $ci->email->cc('[email protected]');
            $ci->email->bcc('[email protected]');
            $ci->email->subject('error');
            $ci->email->message('Severity: '.$severity.'  --> '.$message. ' '.$filepath.' '.$line);
            $ci->email->send();
        }


        parent::log_exception($severity, $message, $filepath, $line);
    }

}

Ответ 2

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

$CI =& get_instance();

После этого вы используете $CI вместо $this для загрузки библиотеки электронной почты и установки всех параметров. Для получения дополнительной информации нажмите здесь и просмотрите раздел Использование ресурсов CodeIgniter в вашей библиотеке.

Ответ 3

О, еще один вариант - получить приложение для логротации, которое поддерживает рассылки электронной почты. Не уверен, на какой платформе вы находитесь, но вы можете просто что-то контролировать файл error_log и отправлять вам обновления, возможно, не так аккуратно и, конечно, вы будете ограничены только информацией в error_log. (error_log - Apache, CI имеет/logs/папку в системе, а IIS - события Windows)

Ответ 4

Я собираюсь выпустить проект с открытым исходным кодом, который делает это, и многое другое. Он собирает ошибки, отправляет их в поисковый трекер, обнаруживает дубликаты, превращает их в проблемы и сотрудники электронной почты.

Подробности находятся в https://sourceforge.net/news/?group_id=317819&id=293422, а версия 0.1.7, которую он упоминает, должна выйти через пару дней.

Отслеживание с открытым исходным кодом находится в http://elastik.sourceforge.net/

Любая обратная связь приветствуется, спасибо