我正在尝试为log4net设计SMTP appender配置,当发生特定字符串匹配时,该配置将发送包含先前日志条目的电子邮件。用例是我们每天都有一个流程。我有一个SMTPAppender,它可以监视错误并且工作正常。但我想要另一个SMTP appender来监视"程序的成功"程序运行完毕后发出的消息,并向我们的ops发送一封电子邮件,其中包含运行的所有日志条目,如下所示:
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 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>
答案 0 :(得分:1)
创建自己的ITriggeringEventEvaluator实现似乎是要走的路。然后,当传递的IsTriggeringEvent包含目标字符串时,您可以使LoggingEvent's RenderedMessage property返回true。