¿Cómo configuro las notificaciones por correo electrónico para las excepciones que se registran o se lanzan en el sitio?
ACTUALIZACIÓN: Algunas personas han comentado sobre el hecho de que puede esperar recibir demasiados correos electrónicos si recibe todas las excepciones por correo electrónico. Tiendo a mantener mi registro de excepciones bastante ligero. Todo lo que entra allí lo veo, bueno, como una excepción. Si es una funcionalidad esperada y no es un problema, me gusta detectar la excepción, posiblemente registrarla en otro archivo (tal vez system.log) si es necesario, pero no registrarla en exception.log.
Pero si tiene mucho ruido en su excepción.log que no desea limpiar, es probable que no quiera hacer esto.
Respuestas:
Puede usar el Magento Hackthon Logger para este trabajo: https://github.com/firegento/firegento-logger/
No es la pregunta, pero hay extensiones para la extensión: https://github.com/magento-hackathon/LoggerSentry/
Lo que quiero decir: es fácil implementar su propio "escritor" :-)
fuente
Esto no parecía tan accesible como pensé que debería ser de algunas búsquedas que hice, así que estoy publicando una pregunta / respuesta para futuras referencias.
Excepciones lanzadas
Puede habilitar las notificaciones por correo electrónico para las excepciones que se generan con errores / local.xml. Puede copiar su
errors/local.xml.template
en `errors / local.xml 'y colocar la dirección de correo electrónico y la línea de asunto que desea usar.Luego, si el sistema de manejo de errores de Magento arroja y captura alguna excepción, donde se muestra una pantalla de informe de error al usuario final, recibirá una notificación por correo electrónico.
Excepciones registradas
Si también desea recibir notificaciones por correo electrónico para las excepciones que no se lanzan, sino que se registran, deberá avanzar un poco más bajo el capó.
Primero, anule la clase principal de escritor de registros .
Una vez que hayas hecho eso, solo coloca el código para enviarte un correo electrónico después de que se registre la excepción. Recuerde que debe guardar el nombre del archivo de registro desde dentro
__construct()
para poder acceder a él desde el_write()
método.fuente
Enviar por correo electrónico todas las excepciones probablemente dará como resultado MUCHO correo.
Podría ser una mejor opción simplemente registrar las excepciones en el registro de excepciones y enviarlas por correo una vez al día usando un cronjob en Linux
Y, opcionalmente, limpiarlo después de enviarlo por correo
O podría ejecutarlo cada hora si necesita una frecuencia más alta.
De esta manera no hay necesidad de sobrescribir ningún archivo y mantener la carga en el servidor que constantemente se envía correos a usted mismo.
fuente
quizás también te pueda interesar mi integración de Magento / Monolog
https://github.com/aleron75/magemonolog
Saludos Alessandro
fuente
No me gusta la implementación de Mage :: log's custom writerModel o no lo entiendo. Para mí, no aprovecha el diseño de Zend_Log para habilitar n escritores. Hubiera tomado un registro, no un escritor. Por lo tanto, hice una solución alternativa para aprovechar al máximo el Zend_Log y aún no escribir mucho código, ya que agrego un Zend_log.
Por cierto, en Magento 1.7 recibo solo unos pocos correos electrónicos. Supongo que cada correo electrónico tiene algunas excepciones / errores para una solicitud. Por lo tanto, un sitio muy frecuentado aún generará muchos correos electrónicos. Voy a tener que ver eso. Por ahora está bien para mí.
fuente
También podría usar un módulo para crear notificaciones por correo electrónico u obtener informes diarios de los clientes que obtuvieron excepciones:
Aquí se explica la implementación: https://grafzahl-io.blogspot.de/2017/03/notifications-for-every-exception-in-magento.html
Este es el módulo para monitorear errores y otros eventos (incluso aplicar un descuento al cliente si tiene una excepción): https://grafzahl.io/notify-module
fuente