Spring Boot – envoi d’e-mails avec Logback

J’essaie de configurer Logback pour envoyer des emails chaque fois qu’une exception (Niveau de journalisation: ERREUR) se produit. Je n’ai pas été en mesure de le faire fonctionner, alors j’aimerais vous demander votre aide pour la configuration.

J’ai une application de démarrage Spring où certains traitements sont effectués:

private void foo() { try { // do something } catch (Exception e) { log.error("Logging my exception"); } } 

Je voudrais déclencher un email chaque fois que cette erreur est enregistrée. J’ai suivi quelques tutoriels et j’ai ajouté logback.xml et smtp-appender.xml à mon répertoire de resources :

logback.xml

         

smtp-appender.xml

    xxx user password test@email.com me@email.com testError    

J’ai installé smtpserver local sur localhost via sendmail . J’ai aussi essayé avec le serveur AWS smtp et Gmail. Aucun de ces services n’a fonctionné pour moi jusqu’à présent.

Le problème est que je ne reçois aucun email après l’exception et qu’il n’y a littéralement aucune sortie correspondant à la consignation (hormis la sortie log.error() , bien sûr), ce qui me fait penser que l’application ne connaît même pas ces configurations. des dossiers…

Ce sont mes dépendances maven dans pom.xml :

  org.springframework.boot spring-boot-starter-parent 1.2.5.RELEASE     UTF-8 1.8    org.springframework.boot spring-boot-starter-web   org.springframework.boot spring-boot-starter-actuator   org.projectlombok lombok 1.16.2   org.springframework.boot spring-boot-starter-test test   org.json json 20141113   javax.mail mail 1.4   

Toute aide serait très appréciée.

L’entrée par défaut du port dans smtpappender est 25, Gmail utilise l’authentification pour les services smtp et vous devez utiliser les ports 587 pour TLS et 465 pour SSL.

Je dirais que cela pourrait être votre problème.

Essayez d’abord d’installer le serveur de messagerie sur votre ordinateur local sans authentification, puis essayez si vous avez ajouté les travaux. puis essayez de trouver comment le configurer pour gmail.

De la page http://logback.qos.ch/manual/appenders.html#gmailSTARTTLS

SMTPAppender pour Gmail (STARTTLS)

   smtp.gmail.com 587 true YOUR_USERNAME@gmail.com YOUR_GMAIL_xPASSWORD EMAIL-DESTINATION ANOTHER_EMAIL_DESTINATION  YOUR_USERNAME@gmail.com TESTING: %logger{20} - %m  %date %-5level %logger - %message%n       

Les pls comprennent la suite (de mon projet de travail) sur pom.xml & logback.xml afin d’obtenir un message d’erreur: –

pom.xml

   org.slf4j slf4j-api 1.6.4   ch.qos.logback logback-classic 1.0.1   org.slf4j jcl-over-slf4j 1.6.4   javax.mail mail 1.4  

logback.xml

    xxx 25 me@gmail.com you@gmail.com App Err Mail   ERROR       

Vous devez activer le déclenchement de courrier électronique basé sur des marqueurs.

inclure un évaluateur dans votre logback.xml sous SMTP appender, voir le lien ci-dessous

http://logback.qos.ch/manual/appenders.html#OnMarkerEvaluator

puis ajoutez ci-dessous la logique dans votre bloc catch Exception, passez l’object Marker à la méthode logger si vous voulez envoyer un email comme ci-dessous –

 Marker notifyAdmin = MarkerFactory.getMarker("NOTIFY_ADMIN"); logger.error(notifyAdmin, "This is a serious an error requiring the admin's attention", new Except ion("Just testing")); 

Il est possible que, dans certains cas, vous ne vouliez pas envoyer d’email et ne vouliez que consigner l’exception, alors ne transmettez pas l’object Marqueur à la méthode de consignation.

 logger.error("This is a serious an error requiring the admin's attention", new Except ion("Just testing"));