Jak skonfigurować powiadomienia e-mail o wyjątkach, które są rejestrowane lub zgłaszane w witrynie?
AKTUALIZACJA: Kilka osób skomentowało fakt, że możesz spodziewać się zbyt dużej liczby wiadomości e-mail, jeśli otrzymałeś każdy wyjątek. Zwykle chcę, aby mój dziennik wyjątków był dość lekki. Wszystko, co tam się dzieje, uważam za wyjątek. Jeśli jest to oczekiwana funkcjonalność i nie stanowi problemu, to lubię wychwycić wyjątek, w razie potrzeby zaloguj go do innego pliku (być może system.log), ale nie loguj go do dziennika wyjątku.log.
Ale jeśli masz dużo hałasu w swoim wyjątku. Dziennik, którego nie chcesz czyścić, prawdopodobnie nie będziesz chciał tego robić.
Odpowiedzi:
Możesz użyć Magento Hackthon Logger do tego zadania: https://github.com/firegento/firegento-logger/
To nie jest pytanie, ale istnieją rozszerzenia dla rozszerzenia: https://github.com/magento-hackathon/LoggerSentry/
Co chcę powiedzieć: łatwo jest wdrożyć własnego „Writer” :-)
źródło
Nie wydawało się to tak łatwo dostępne, jak myślałem, że powinno wynikać z niektórych poszukiwań, więc zamieszczam pytanie / odpowiedź na przyszłe odniesienia.
Zgłaszane wyjątki
Możesz włączyć powiadomienia e-mail o wyjątkach zgłaszanych za pomocą error / local.xml. Możesz skopiować swój
errors/local.xml.template
plik na `error / local.xml 'i wpisać adres e-mail oraz wiersz tematu, którego chcesz użyć.Następnie, jeśli wyjątki zostaną zgłoszone i wykryte przez system obsługi błędów Magento, w którym użytkownik końcowy wyświetla ekran raportu o błędach, otrzymasz powiadomienie e-mailem.
Zarejestrowane wyjątki
Jeśli chcesz także otrzymywać powiadomienia e-mail o wyjątkach, które nie są zgłaszane, ale są rejestrowane, musisz przejść nieco dalej.
Najpierw zastąp klasę zapisującą dziennik rdzenia .
Gdy to zrobisz, po prostu wpisz kod, aby zrobić sobie wiadomość e-mail po zarejestrowaniu wyjątku. Pamiętaj, że musisz zapisać nazwę pliku dziennika od wewnątrz
__construct()
, aby mieć do niej dostęp z tej_write()
metody.źródło
Wysłanie każdego wyjątku pocztą e-mail spowoduje prawdopodobnie DUŻO poczty.
Lepszym rozwiązaniem może być po prostu rejestrowanie wyjątków w dzienniku wyjątków i wiadomości e-mail, które raz dziennie dla siebie za pomocą usługi cronjob w systemie Linux
I opcjonalnie wyczyść go po wysłaniu
Lub możesz wykonać go co godzinę, jeśli potrzebujesz wyższej częstotliwości.
W ten sposób nie ma potrzeby nadpisywania żadnych plików i utrzymywania obciążenia serwera, który stale wysyła do Ciebie wiadomości e-mail.
źródło
być może możesz być zainteresowany moją integracją Magento / Monolog
https://github.com/aleron75/magemonolog
Pozdrawiam Alessandro
źródło
Nie podoba mi się implementacja niestandardowego modułu pisarzaMage :: log lub nie rozumiem tego. Dla mnie nie korzysta z projektu Zend_Log, aby umożliwić n pisarzom. Wziąłbym dziennik, a nie pisarza. Dlatego dokonałem obejścia, aby w pełni wykorzystać Zend_Log i nadal pisać niewiele kodu, ponieważ agreguję Zend_log.
Nawiasem mówiąc, w Magento 1.7 otrzymuję tylko kilka e-maili. Każdy e-mail zawiera pewne wyjątki / błędy dotyczące jednego żądania. Tak często odwiedzana witryna nadal będzie generować wiele wiadomości e-mail. Spojrzę na to. Do tej pory jest dla mnie w porządku.
źródło
Możesz także użyć modułu do tworzenia powiadomień e-mail lub codziennych raportów o klientach, którzy otrzymali wyjątki:
Poniżej wyjaśniono wdrożenie: https://grafzahl-io.blogspot.de/2017/03/notifications-for-every-exception-in-magento.html
Jest to moduł do monitorowania błędów i innych zdarzeń (nawet zastosuj zniżkę dla klienta, jeśli dostanie wyjątek): https://grafzahl.io/notify-module
źródło