如何使用LOG4NET进行特定事件

时间:2014-10-26 10:44:28

标签: c# log4net

嗨,刚刚学习Log4net,我陷入困境

我使用Info(...)来写日志文件,但我还需要在特定事件中使用Info(...)来发送电子邮件。

因此,对Info(...)的一次调用会写入日志并发送电子邮件。

2 个答案:

答案 0 :(得分:1)

实现此目标的最佳方法可能是add a filter到您的SMTP appender:StringMatchFilter可能是您最好的选择。

有一个在http://maonet.wordpress.com/2012/01/06/use-log4net-filter-to-dispatch-email-notification-based-on-string-match

使用带有SMTPAppender的StringMatchFilter的示例

作者注意到:

  • 过滤器类型设置为log4net.Filter.StringMatchFilter
  • 每个过滤器部分只能有一个stringToMatch元素
  • 以“log4net.Filter.DenyAllFilter”过滤器结束,从默认的“除非另有说明,否则接受”过滤行为切换为“除非另有说明否则”否则所有行为。

答案 1 :(得分:1)

您可以在log4net config中为特定记录器添加额外的记录器:

<log4net>
  <appender name="DefaultAppender" type="...">
    ...
  </appender>
  <appender name="MailAppender" type="...">
    ...
  </appender>
  <root>
    <level value="INFO" />
    <appender-ref ref="DefaultAppender" />
  </root>
  <logger name="MyLoggerNameMail">
    <level value="INFO" />
   <appender-ref ref="MailAppender" />
  </logger>
</log4net>