Java log4j不发送信息邮件
我有一个问题:我有下面的lo4j.xml和类,但是我找不到如何配置log4j以便在类ERROR mails中有信息日志时发送邮件 这是我的log4j.xml: 你知道吗?Java log4j不发送信息邮件,java,email,logging,smtp,log4j,Java,Email,Logging,Smtp,Log4j,我有一个问题:我有下面的lo4j.xml和类,但是我找不到如何配置log4j以便在类ERROR mails中有信息日志时发送邮件 这是我的log4j.xml: 你知道吗? 提前谢谢,很抱歉格式化了。。当我发现SMTPAppender by design仅记录错误和以上消息时,我会更正它 默认情况下,当出现错误或更高错误时,将发送电子邮件消息 附加严重性消息。可以修改触发条件 通过使用类的名称设置evaluatorClass属性 实现TriggeringEventEvaluator,设置eva
提前谢谢,很抱歉格式化了。。当我发现SMTPAppender by design仅记录错误和以上消息时,我会更正它 默认情况下,当出现错误或更高错误时,将发送电子邮件消息 附加严重性消息。可以修改触发条件 通过使用类的名称设置evaluatorClass属性 实现TriggeringEventEvaluator,设置evaluator属性 使用TriggeringEventEvaluator实例或嵌套 指定类实现的triggeringPolicy元素 TriggeringEventEvaluator 设置阈值不起作用。您需要具有的自定义实现。下面的代码可以工作
<appender name="mailAppender" class="org.apache.log4j.net.SMTPAppender">
<param name="BufferSize" value="1" />
<param name="SMTPHost" value="xxx" />
<param name="SMTPPort" value="25" />
<param name="SMTPUsername" value="xxx@xxx.fr" />
<param name="SMTPPassword" value="xxx" />
<param name="From" value="yyyy@yyyy.fr" />
<param name="To" value="zzzz@zzzz.fr" />
<param name="Subject" value="[Projet] - Message" />
<param name="evaluatorClass" value="myapp.EmailTriggerEvaluator"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%m%n"/>
</layout>
</appender>
public class EmailTriggerEvaluator implements TriggeringEventEvaluator {
@Override
public boolean isTriggeringEvent(LoggingEvent event) {
return event.getLevel().isGreaterOrEqual(Level.INFO);
}
}
public class Mailer {
private static final Logger logger = Logger.getLogger(Mailer.class);
private static final String MAIL_INFO_MESSAGE = "Bonjour,\nLe traitement suivant s'est déroulé avec succès :\n";
private static final String MAIL_ERROR_MESSAGE = "Bonjour,\nUne erreur est survenue lors du traitement MGAS"
+ "\nVoici la trace de l'erreur relevée :\n\n";
/**
* Envoie un mail d'information
*
* @param mailString
*/
public void logSuccessMail(final String mailString) {
logger.info(MAIL_INFO_MESSAGE + mailString);
}
/**
* Envoie un mail d'erreur
*
* @param mailString
*/
public void logErrorMail(final String mailString) {
logger.error(MAIL_ERROR_MESSAGE + mailString);
}
}
<appender name="mailAppender" class="org.apache.log4j.net.SMTPAppender">
<param name="BufferSize" value="1" />
<param name="SMTPHost" value="xxx" />
<param name="SMTPPort" value="25" />
<param name="SMTPUsername" value="xxx@xxx.fr" />
<param name="SMTPPassword" value="xxx" />
<param name="From" value="yyyy@yyyy.fr" />
<param name="To" value="zzzz@zzzz.fr" />
<param name="Subject" value="[Projet] - Message" />
<param name="evaluatorClass" value="myapp.EmailTriggerEvaluator"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%m%n"/>
</layout>
</appender>
public class EmailTriggerEvaluator implements TriggeringEventEvaluator {
@Override
public boolean isTriggeringEvent(LoggingEvent event) {
return event.getLevel().isGreaterOrEqual(Level.INFO);
}
}