Como configurar notificações por email para exceções registradas ou lançadas no site?
ATUALIZAÇÃO: algumas pessoas comentaram o fato de que você pode esperar receber muitos e-mails se você receber todas as exceções por e-mail. Costumo gostar de manter o meu registro de exceções bastante leve. Tudo o que entra lá eu vejo como, também, uma exceção. Se a funcionalidade for esperada e não for um problema, eu gostaria de capturar a exceção, possivelmente registrá-la em outro arquivo (talvez system.log), se necessário, mas não registrá-la em exception.log.
Mas se você tiver muito ruído em sua exceção.log que não deseja limpar, provavelmente não vai querer fazer isso.
Respostas:
Você pode usar o Magento Hackthon Logger para este trabalho: https://github.com/firegento/firegento-logger/
Não é a questão, mas existem extensões para a extensão: https://github.com/magento-hackathon/LoggerSentry/
O que eu quero dizer: É fácil implementar seu próprio "Writer" :-)
fonte
Isso não parecia tão facilmente acessível quanto eu pensava que deveria ser em algumas pesquisas que fiz, então estou postando uma pergunta / resposta para referência futura.
Exceções lançadas
Você pode ativar as notificações por email para exceções lançadas usando errors / local.xml. Você pode copiar
errors/local.xml.template
para `errors / local.xml 'e soltar o endereço de email e a linha de assunto que deseja usar.Então, se alguma exceção for lançada e capturada pelo sistema de tratamento de erros do Magento, onde uma tela de relatório de erros é exibida para o usuário final, você receberá uma notificação por email.
Exceções registradas
Se você também deseja receber notificações por e-mail de exceções que não são lançadas, mas registradas, precisará ir um pouco mais longe.
Primeiro, substitua a classe principal do gravador de log .
Depois de fazer isso, basta soltar o código para enviar um e-mail para você mesmo depois que a exceção for registrada. Lembre-se de que você precisa salvar o nome do arquivo de log de dentro do
__construct()
para ter acesso a ele pelo_write()
métodofonte
Enviar todas as exceções por e-mail provavelmente resultará em MUITO correio.
Pode ser uma opção melhor registrar apenas as exceções no log e no correio de exceções que uma vez por dia para você mesmo usando um cronjob no linux
E, opcionalmente, limpá-lo depois de enviá-lo
Ou você pode executá-lo a cada hora, se precisar de uma frequência mais alta.
Dessa forma, não há necessidade de sobrescrever nenhum arquivo e manter a carga no servidor que constantemente envia e-mails para si mesmo.
fonte
talvez você também possa estar interessado na minha integração Magento / Monolog
https://github.com/aleron75/magemonolog
Atenciosamente Alessandro
fonte
Não gosto da implementação do writerModel personalizado do Mage :: log ou não o entendo. Para mim, não tira proveito do design do Zend_Log para ativar n gravadores. Eu teria tomado um registro, não um escritor. Portanto, eu fiz uma solução alternativa para aproveitar ao máximo o Zend_Log e ainda escrever muito pouco código, pois agreguei um Zend_log.
A propósito, no Magento 1.7, recebo apenas alguns e-mails. Cada email tem algumas exceções / erros para uma solicitação, eu acho. Um site tão frequentado ainda resultará em muitos emails. Vou dar uma olhada nisso. Até agora está tudo bem para mim.
fonte
Você também pode usar um módulo para criar notificações por email ou obter relatórios diários de clientes com exceções:
Aqui está explicada a implementação: https://grafzahl-io.blogspot.de/2017/03/notifications-for-every-exception-in-magento.html
Este é o módulo para monitorar erros e outros eventos (até aplicar um desconto ao cliente se ele tiver uma exceção): https://grafzahl.io/notify-module
fonte