In CodeIgniter, Wie kann ich PHP-Fehlermeldungen habe ich Emailed?
-
06-07-2019 - |
Frage
Ich möchte Fehlerprotokolle per E-Mail erhalten. Zum Beispiel soll, wenn eine Warning-level
Fehlermeldung auftritt, würde Ich mag eine E-Mail darüber erhalten.
Wie kann ich, dass die Arbeit in CodeIgniter?
Lösung
Sie könnten die Ausnahme Kern-Klasse erweitern, es zu tun.
könnte der Verweis auf CI E-Mail-Klasse einstellen müssen, um nicht sicher, ob Sie es aus einer Bibliothek wie folgt instanziieren kann. Ich benutze keine CI E-Mail-Klasse selbst, ich habe die Swift Mailer-Bibliothek im Einsatz. Aber das soll man auf dem richtigen Weg bekommen.
Erstellen Sie eine Datei MY_Exceptions.php und legen Sie sie in / application / Bibliotheken / (Oder / application / Kern / 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('your@example.com', 'Your Name');
$ci->email->to('someone@example.com');
$ci->email->cc('another@another-example.com');
$ci->email->bcc('them@their-example.com');
$ci->email->subject('error');
$ci->email->message('Severity: '.$severity.' --> '.$message. ' '.$filepath.' '.$line);
$ci->email->send();
}
parent::log_exception($severity, $message, $filepath, $line);
}
}
Andere Tipps
Eine Sache, die aus der Lösung übrig bleibt, ist, dass Sie CodeIgniters Super-Objekt greifen müssen, um zu laden und die E-Mail-Bibliothek verwenden (oder eine der CodeIgniters andere Bibliotheken und nativen Funktionen).
$CI =& get_instance();
Nachdem Sie das getan haben, Sie $CI
statt $this
verwenden, um die E-Mail-Bibliothek zu laden und alle Parameter eingestellt. Weitere Informationen hier und suchen Sie unter Verwendung CodeIgniter Ressourcen innerhalb Ihrer Bibliothek .
Oh, eine weitere Option ist es, eine Logrotation Anwendung zu erhalten, die Digests E-Mail unterstützt. Nicht sicher, welche Plattform Sie sind, aber man konnte nur etwas die error_log Datei überwachen und Sie Updates senden, vielleicht nicht so ordentlich sein und sicherlich würden Sie nur Informationen in der error_log begrenzt werden. (Error_log ist Apache, CI a / logs / Ordner im System hat, und IIS hat die Windows-Ereignisse)
Ich bin nur hier um ein Open-Source-Projekt zu veröffentlichen, die dies tut, und vieles mehr. Es sammelt Fehler, sendet sie an einen Bugtracker, erkennt Duplikate, verwandelt sich in Fragen und E-Mails Personal.
Details sind unter https://sourceforge.net/news/?group_id=317819&id=293422 und die Version 0.1.7 es erwähnt ist aufgrund out in ein paar Tagen.
Der Open-Source-Tracker ist unter http://elastik.sourceforge.net/
Jedes Feedback willkommen, Danke
richte ich ein Open-Source-Projekt Github diese Lösung mit konfigurierbaren implementieren E-Mail-Parameter.