Wie richte ich E-Mail-Benachrichtigungen für Ausnahmen ein, die entweder protokolliert oder auf der Site ausgelöst werden?
UPDATE: Einige Leute haben die Tatsache kommentiert, dass Sie möglicherweise zu viele E-Mails erhalten, wenn Sie jede Ausnahme per E-Mail erhalten. Ich neige dazu, mein Ausnahmeprotokoll ziemlich leicht zu halten. Alles, was dort reinkommt, sehe ich als Ausnahme an. Wenn es sich um die erwartete Funktionalität und kein Problem handelt, möchte ich die Ausnahme abfangen und sie möglicherweise in einer anderen Datei (möglicherweise system.log) protokollieren, aber nicht in exception.log.
Wenn Sie jedoch eine Menge Rauschen in Ihrem exception.log haben, das Sie nicht bereinigen möchten, werden Sie dies wahrscheinlich nicht tun wollen.
Antworten:
Sie können den Magento Hackthon Logger für diesen Job verwenden: https://github.com/firegento/firegento-logger/
Es ist nicht die Frage, aber es gibt Erweiterungen für die Erweiterung: https://github.com/magento-hackathon/LoggerSentry/
Was ich sagen möchte: Es ist einfach, einen eigenen "Writer" zu implementieren :-)
quelle
Dies schien mir nicht so leicht zugänglich zu sein, wie ich es mir aufgrund einiger meiner Recherchen vorgestellt hatte. Deshalb poste ich eine Frage / Antwort, um später darauf zurückgreifen zu können.
Ausnahmen ausgelöst
Sie können E-Mail-Benachrichtigungen für Ausnahmen aktivieren, die mit errors / local.xml ausgelöst werden. Sie können Ihre
errors/local.xml.template
nach `errors / local.xml 'kopieren und die E-Mail-Adresse und die Betreffzeile eingeben, die Sie verwenden möchten.Wenn das Fehlerbehandlungssystem von Magento Ausnahmen auslöst und diese abfängt und dem Endbenutzer ein Fehlerbericht angezeigt wird, erhalten Sie eine E-Mail-Benachrichtigung.
Protokollierte Ausnahmen
Wenn Sie auch E-Mail-Benachrichtigungen für Ausnahmen erhalten möchten, die nicht ausgelöst, sondern protokolliert werden, müssen Sie sich ein wenig näher damit befassen.
Zuerst überschreiben Sie die Log - Writer - Klasse Kern .
Sobald Sie dies getan haben, geben Sie einfach den Code ein, um sich eine E-Mail zu senden, nachdem die Ausnahme protokolliert wurde. Denken Sie daran, dass Sie den Protokolldateinamen in der Datei speichern müssen, um
__construct()
von der_write()
Methode aus darauf zugreifen zu können .quelle
Das Versenden jeder Ausnahme per E-Mail führt wahrscheinlich zu VIELEN E-Mails.
Es könnte eine bessere Option sein, die Ausnahmen nur im Ausnahmeprotokoll zu protokollieren und diese einmal täglich mit einem Cronjob unter Linux an sich selbst zu senden
Und optional bereinigen, nachdem Sie es verschickt haben
Oder Sie können es jede Stunde ausführen, wenn Sie eine höhere Frequenz benötigen.
Auf diese Weise müssen Sie keine Dateien überschreiben und die Last auf dem Server, der ständig E-Mails an Sie selbst sendet, gering halten.
quelle
Vielleicht interessieren Sie sich auch für meine Magento / Monolog-Integration
https://github.com/aleron75/magemonolog
Grüße Alessandro
quelle
Die Implementierung von Mage :: logs benutzerdefiniertem writerModel gefällt mir nicht oder ich verstehe es nicht. Für mich nutzt es Zend_Log Design nicht aus, um n Autoren zu ermöglichen. Ich hätte ein Log genommen, kein Writer. Daher habe ich einen Workaround gemacht, um den vollen Nutzen aus dem Zend_Log zu ziehen und trotzdem nicht viel Code zu schreiben, da ich ein Zend_log aggregiere.
Übrigens bekomme ich in Magento 1.7 nur ein paar Emails. Jede E-Mail hat einige Ausnahmen / Fehler für eine Anfrage, denke ich. So hoch frequentierte Website wird immer noch in vielen E-Mails führen. Das werde ich mir ansehen. Inzwischen ist es okay für mich.
quelle
Sie können auch ein Modul verwenden, um E-Mail-Benachrichtigungen zu erstellen oder tägliche Berichte von Kunden zu erhalten, die Ausnahmen haben:
Hier wird die Implementierung erklärt: https://grafzahl-io.blogspot.de/2017/03/notifications-for-every-exception-in-magento.html
Dies ist das Modul zum Überwachen von Fehlern und anderen Ereignissen (es wird sogar ein Rabatt auf den Kunden gewährt, wenn er eine Ausnahme hat): https://grafzahl.io/notify-module
quelle