【问题标题】:Using Serilog to send email notification immediately in .NET Framework在 .NET Framework 中使用 Serilog 立即发送电子邮件通知
【发布时间】:2019-06-25 22:45:55
【问题描述】:

我已经在我的 .NET 框架解决方案中配置了 Serilog。我已经通过Serilog.Sinks.Email 包设置了多个接收器,包括一个用于电子邮件的接收器。水槽工作正常。设置后我意识到我必须使用Logger.FlushAndClose() 来实际发送管道中的电子邮件。如何立即(或在记录后不久)通过 Serilog 发送电子邮件通知/刷新管道?

我正在构建一个将长时间保持在线的 Windows 服务,因此每次我需要发送电子邮件时关闭并重建 Serilog 日志记录管道是行不通的。

理想情况下,类似Logger.Flush(),但似乎不存在。

谢谢。

【问题讨论】:

    标签: c# .net serilog


    【解决方案1】:

    您可以通过指定批量发布限制来临时解决此问题。

    通过在初始化电子邮件接收器时将batchPostingLimit 参数设置为1,将在每次记录发生后发送电子邮件。

    例子:

    logger = logger.WriteTo.Email(
                        fromEmail: "test@gmail.com",
                        toEmail: toEmail,
                        mailServer: "mailserver.com",                    
                        restrictedToMinimumLevel: LogEventLevel.Error,
                        mailSubject: "Log Notification",
                        batchPostingLimit: 1
                    );
    

    【讨论】:

      猜你喜欢
      • 2012-05-02
      • 2010-11-03
      • 2014-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多