如何将LOG4NET用于特定事件

本文关键字:事件 用于 LOG4NET | 更新日期: 2023-09-27 18:27:55

嗨,刚刚学习Log4net,我被卡住了

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

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

如何将LOG4NET用于特定事件

实现这一点的最佳方法可能是在SMTP附加程序中添加一个筛选器:StringMatchFilter可能是您的最佳选择。

以下是将StringMatchFilter与SMTPAppender一起使用的示例http://maonet.wordpress.com/2012/01/06/use-log4net-filter-to-dispatch-email-notification-based-on-string-match

作者注意到:

  • 筛选器类型设置为log4net.filter.StringMatchFilter
  • 每个筛选器节只能有一个stringToMatch元素
  • 以"log4net.Filter.DenyAllFilter"筛选器结束,从默认的"除非另有指示,否则接受全部"筛选行为切换为"除非另有指令,否则拒绝全部"行为

您可以在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>