Comment configurer des notifications par e-mail pour les exceptions qui sont soit enregistrées, soit levées sur le site?
MISE À JOUR: Quelques personnes ont commenté le fait que vous pourriez vous attendre à recevoir beaucoup trop de courriels si vous avez reçu chaque exception par courriel. J'ai tendance à garder mon journal d'exceptions assez léger. Tout ce qui se passe là-dedans, je le considère comme une exception. S'il s'agit d'une fonctionnalité attendue et non d'un problème, j'aime intercepter l'exception, éventuellement la consigner dans un autre fichier (peut-être system.log) si nécessaire, mais pas la consigner dans exception.log.
Mais si vous avez beaucoup de bruit dans votre exception.log que vous ne voulez pas nettoyer, vous ne voudrez probablement pas le faire.
Réponses:
Vous pouvez utiliser le Magento Hackthon Logger pour ce travail: https://github.com/firegento/firegento-logger/
Ce n'est pas la question, mais il existe des extensions pour l'extension: https://github.com/magento-hackathon/LoggerSentry/
Ce que je veux dire: il est facile d'implémenter votre propre "Writer" :-)
la source
Cela ne semblait pas aussi facilement accessible que je pensais que cela devrait être dû à une recherche que j'ai faite, donc je poste une question / réponse pour une référence future.
Exceptions levées
Vous pouvez activer les notifications par e-mail pour les exceptions levées à l'aide d'erreurs / local.xml. Vous pouvez copier votre
errors/local.xml.template
fichier dans «erreurs / local.xml» et déposer l'adresse e-mail et la ligne d'objet que vous souhaitez utiliser.Ensuite, si des exceptions sont levées et détectées par le système de gestion des erreurs de Magento, où un écran de rapport d'erreurs s'affiche pour l'utilisateur final, vous recevrez une notification par e-mail.
Exceptions enregistrées
Si vous souhaitez également recevoir des notifications par e-mail pour les exceptions qui ne sont pas levées mais qui sont plutôt enregistrées, vous devrez aller un peu plus loin sous le capot.
Tout d'abord, remplacez la classe principale d'écrivain de journaux .
Une fois que vous avez fait cela, déposez simplement le code pour vous tirer un e-mail après la journalisation de l'exception. N'oubliez pas que vous devez enregistrer le nom du fichier journal dans le
__construct()
afin d'y accéder à partir de la_write()
méthode.la source
L'envoi de chaque exception par e-mail entraînera probablement BEAUCOUP de courrier.
Il serait peut-être préférable de simplement enregistrer les exceptions dans le journal d'exceptions et de les envoyer une fois par jour à vous-même à l'aide d'un cronjob sous linux.
Et éventuellement le nettoyer après l'avoir envoyé par la poste
Ou vous pouvez l'exécuter toutes les heures si vous avez besoin d'une fréquence plus élevée.
De cette façon, il n'est pas nécessaire d'écraser les fichiers et de maintenir la charge sur le serveur qui vous envoie constamment des e-mails.
la source
peut-être que vous pouvez également être intéressé par mon intégration Magento / Monolog
https://github.com/aleron75/magemonolog
Cordialement Alessandro
la source
Je n'aime pas l'implémentation de writerModel personnalisé de Mage :: log ou je ne le comprends pas. Pour moi, il ne profite pas de la conception de Zend_Log pour activer n écrivains. J'aurais pris un journal et non un écrivain. Par conséquent, j'ai fait une solution de contournement pour tirer pleinement parti du Zend_Log et écrire encore peu de code, car j'agrège un Zend_log.
Au fait, dans Magento 1.7, je ne reçois que quelques e-mails. Chaque e-mail comporte des exceptions / erreurs pour une demande, je suppose. Un site très fréquenté entraînera donc toujours de nombreux e-mails. Je vais devoir regarder ça. Maintenant, ça me va.
la source
Vous pouvez également utiliser un module pour créer des notifications par e-mail ou obtenir des rapports quotidiens de clients qui ont obtenu des exceptions:
Voici la mise en œuvre expliquée: https://grafzahl-io.blogspot.de/2017/03/notifications-for-every-exception-in-magento.html
Ceci est le module pour surveiller les erreurs et autres événements (même appliquer une remise au client s'il a une exception): https://grafzahl.io/notify-module
la source