Я хочу получать журналы ошибок по электронной почте. Например, если появляется сообщение об ошибке Warning-level
, я хотел бы получить электронное письмо об этом.
Как я могу получить это в CodeIgniter?
Я хочу получать журналы ошибок по электронной почте. Например, если появляется сообщение об ошибке Warning-level
, я хотел бы получить электронное письмо об этом.
Как я могу получить это в CodeIgniter?
Вы можете расширить класс ядра 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);
}
}
Одна вещь, которая не учитывает решение, заключается в том, что вам нужно захватить супер-объект CodeIgniters для загрузки и использования библиотеки электронной почты (или любой другой библиотеки CodeIgniters и собственных функций).
$CI =& get_instance();
После этого вы используете $CI
вместо $this
для загрузки библиотеки электронной почты и установки всех параметров. Для получения дополнительной информации нажмите здесь и просмотрите раздел Использование ресурсов CodeIgniter в вашей библиотеке.
О, еще один вариант - получить приложение для логротации, которое поддерживает рассылки электронной почты. Не уверен, на какой платформе вы находитесь, но вы можете просто что-то контролировать файл error_log и отправлять вам обновления, возможно, не так аккуратно и, конечно, вы будете ограничены только информацией в error_log. (error_log - Apache, CI имеет/logs/папку в системе, а IIS - события Windows)
Я собираюсь выпустить проект с открытым исходным кодом, который делает это, и многое другое. Он собирает ошибки, отправляет их в поисковый трекер, обнаруживает дубликаты, превращает их в проблемы и сотрудники электронной почты.
Подробности находятся в https://sourceforge.net/news/?group_id=317819&id=293422, а версия 0.1.7, которую он упоминает, должна выйти через пару дней.
Отслеживание с открытым исходным кодом находится в http://elastik.sourceforge.net/
Любая обратная связь приветствуется, спасибо
Я создал проект с открытым исходным кодом github для реализации этого решения с настраиваемыми параметрами электронной почты.