0

我正在尝试为 log4net 设计一个 SMTP appender 配置,当发生特定字符串匹配时,它将发送一封包含先前日志条目的电子邮件。用例是我们有一个每天都在运行的进程。我有一个 SMTPAppender 可以监视错误并且工作正常。但是我想要另一个 SMTP 附加程序,它在程序完成运行时监视“程序成功”消息,并向我们的操作人员发送一封电子邮件,其中包含运行的所有日志条目,如下所示:

 1/1/2014 4:00 PM - Program started
 1/1/2014 4:01 PM - Program Running
 1/1/2014 4:02 PM - Program still running
 1/1/2014 4:03 PM - Program success

这是我为 appender 准备的模板

<appender name="SmtpAppender" type="log4net.Appender.SmtpAppender">
  <to value="ops@example.com" />
  <from value="automated@example.com" />
  <subject value="Program has run successfully" />
  <smtpHost value="mailserver.com" />
  <username value="" />
  <password value="" />
  <bufferSize value="512" />
  <lossy value="false" />
  <evaluator type="log4net.Core.???">
    What goes here?
  </evaluator>
  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%newline%date [%thread] %-5level %logger [%property{NDC}] - %message%newline%newline%newline" />
  </layout>
</appender>
4

1 回答 1

1

创建自己的ITriggeringEventEvaluator实现似乎是要走的路。然后,当传递的 LoggingEvent 的 RenderedMessage 属性包含目标字符串时,您可以让IsTriggeringEvent返回 true 。

于 2014-12-13T21:10:50.450 回答