W CodeIgniter, jak Mogę mieć Komunikaty o błędach PHP wysyłane do mnie e-mailem?
Chcę otrzymywać dzienniki błędów za pośrednictwem poczty e-mail. Na przykład, Jeśli pojawi się komunikat o błędzie Warning-level
, chcę otrzymać wiadomość e-mail na ten temat.
Jak to działa w CodeIgniter?
5 answers
Możesz rozszerzyć klasę Exception core, aby to zrobić.
Może być konieczne dostosowanie referencji do klasy E-mail CI, nie wiem, czy możesz utworzyć instancję z biblioteki takiej jak ta. Sam nie korzystam z klasy mailowej CI, korzystam z biblioteki Swift Mailer. Ale to powinno doprowadzić cię na właściwą drogę.
Utwórz plik MY_Exceptions.php i umieścić go w / application / libraries /(lub w/application/ core / Dla 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);
}
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-08-26 11:10:11
Jedną z rzeczy, która została pominięta w rozwiązaniu, jest to, że musisz chwycić super obiekt CodeIgniters, aby załadować i użyć biblioteki e-mail (lub dowolnej innej biblioteki CodeIgniters i funkcji natywnych).
$CI =& get_instance();
Po tym, jak to zrobisz, używasz $CI
zamiast $this
, aby załadować bibliotekę e-mail i ustawić wszystkie parametry. Aby uzyskać więcej informacji Kliknij tutaj i zajrzyj pod wykorzystanie zasobów CodeIgniter w sekcji Biblioteka.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-07-31 17:23:10
Oh, inną opcją jest uzyskanie aplikacji logrotation, która obsługuje wysyłanie wiadomości e-mail. Nie wiem, na jakiej platformie się znajdujesz, ale możesz po prostu mieć coś monitorującego plik error_log i wysyłającego Ci aktualizacje, może nie być tak schludny, a na pewno będziesz ograniczony tylko do informacji w error_log. (error_log to Apache, CI ma folder/ logs / w systemie, a IIS ma zdarzenia Windows)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-11-04 02:43:16
Właśnie zamierzam wydać projekt open source, który robi to i więcej. Zbiera błędy, wysyła je do śledzenia problemów, wykrywa duplikaty, zamienia je w problemy i e-maile.
Szczegóły są na https://sourceforge.net/news/?group_id=317819&id=293422 A wersja 0.1.7, o której wspomina, ma się ukazać za kilka dni.
The open source tracker is at http://elastik.sourceforge.net/
Wszelkie opinie mile widziane, dzięki
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-11-16 20:10:21
Skonfigurowałem open source projekt github, aby zaimplementować to rozwiązanie z konfigurowalnymi parametrami poczty e-mail.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-11-01 15:52:15