Voici un extrait contenant mon logback lorsque le Java suivant exécute: p> Je reçois seulement 1 email. En définissant smtpAppender code>:
tampersize code> à 1, je devrais obtenir 2 courriels différents avec 1 message de journal unique dans chacun d'eux. Que se passe-t-il? P> p>
3 Réponses :
Le déclenchement de l'e-mail sortant est calculé par un " évaluateur ". Par défaut SMTPAPPender est livré avec OnerroreValuator qui déclenche des courriels sur les événements d'erreur de niveau ou supérieur. Ainsi, par défaut SMTPAPPender enverra un courrier électronique sur le deuxième message (d'erreur de niveau) et non le premier (avertissement). Pour déclencher des messages sortants sur avertir, écrivez votre propre évaluateur. Voici le code:
public class OnWarnEvaluator extends EventEvaluatorBase<ILoggingEvent> { public boolean evaluate(ILoggingEvent event) throws NullPointerException, EvaluationException { return event.getLevel().levelInt >= Level.WARN_INT; } }
Est-il possible de décrire / configurer un tel évaluateur ou SG. équivalent de manière déclarée dans log4j.xml code> (pour log4j 2.1)? J'aimerais avoir un courrier électronique par des informations et un message de journal d'erreur chacun.
Comme CEKI a déjà mentionné que Smtpapender Trigges emails sur des événements d'erreur de niveau. Pour obtenir tous vos journaux en un seul courrier, vous pouvez augmenter la mémoire tampon sur p>
10 p>
Ici, en augmentant la mémoire tampers sur 10, vous obtiendrez 10 derniers messages connectés par votre erreur. P>
Vérifiez le lien ci-dessous: https://github.com/abdulwaheed18/slf4jTutorial/blob/master/ src / com / waheed / tutoriel8 / Application8.java https://github.com/abdulwaheed18/slf4jTutorial/blob/master/sample8.xml < / p>
Merci@waheed (et +1 pour les échantillons de code). Une chose que je ne comprends toujours pas est la suivante: que se passe-t-il si j'augmente ma mémoire tampers sur 10, puis connectez-vous, disons, 12 messages d'erreur? Vais-je obtenir 1 email avec 10 messages de journal? Si oui, qu'advient-il des 2 derniers messages (10 + 2 = 12)? Merci encore!
Oui, si vous définissez la valeur tampersize comme 10, vous obtiendrez seulement 10 derniers messages. Nous utilisons principalement SMTPAPPRENDER pour informer admin / OPS que quelque chose a mal tourné dans votre demande. Donc, dès que cela a rencontré un journal d'erreur, il vous enverra un courrier avec des numéros de journaux que vous avez définis. Par erreur d'erreur, vous obtiendrez un courrier.
Merci encore (et +1!) Je suis désolé, n'essayez pas d'être un ravageur ici, mais je ne comprends toujours pas ce qui arriverait aux 2 derniers messages de journal. Dis que j'ai un code qui incendie 12 logger.error ("...") code> Les messages d'une ligne et
tampersize code> est défini sur 10. Comme vous l'avez dit, je voudrais obtenir 1 Email avec 10 messages d'erreur dedans. Mais qu'advient-il des 2 dernières journaux d'erreur? B> Merci encore pour toute votre aide jusqu'à présent!
Je suppose que vous êtes confus ici. Comme je l'ai dit par message d'erreur, vous obtiendrez un courrier. Donc, pour 12 erreurs, vous obtiendrez 12 mails dans votre boîte de réception. Dès que le premier Logger.Error a rencontré, il enverra un courrier. Sur le deuxième journal d'erreur, vous obtiendrez un autre courrier. Tampersize défini sur 10 signifie que les 10 messages sont connectés avant le message d'erreur.
Pour déclencher des messages sortants à avertir sans ajouter de nouveaux fichiers source, vous pouvez Ajouter la dépendance de Janino A> et son évaluateur: