【问题标题】:Enterprise Library Logging and Alert E-mails企业图书馆记录和警报电子邮件
【发布时间】:2014-02-20 00:25:27
【问题描述】:

是否可以将企业库设置为仅针对某些类型的事件发送警报电子邮件,其中“事件类型”可以更改而无需重新编译整个程序或无需编辑 .config 文件?

在一个完美的世界中,我可以在 SQL Server 中切换一个设置为“默认情况下,发送电子邮件至 a@example.com。对于满足特定条件的源,发送电子邮件至 b@example。 com。对于其他一些标准,请发送电子邮件至 c@example.com"。

更一般地说,我正在寻找一个日志框架,它可以让我说“对于源 1 2 和 3,如果有东西死了,向每个人发送垃圾邮件,但对于 #4,只给 1 人发送电子邮件”。源由应用程序正在处理的每个文件中的一个数字设置(尽管我计划进行设置,以便 1 个线程仅适用于 1 个源,所以这也是一个选项)。

我看到 Nlog 和 Log4Net 也很流行,但我还没有深入研究它们。

【问题讨论】:

    标签: .net logging enterprise-library


    【解决方案1】:

    您需要添加一个电子邮件侦听器email trace listener。以下是企业库 3.1 中的一个示例

          <add toAddress="to@mail.com" fromAddress="from@mail.com"
        subjectLineStarter="Load" subjectLineEnder="" smtpServer="mailserver.com"
        smtpPort="25" formatter="Text Formatter" listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.EmailTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging, Version=3.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
        traceOutputOptions="None" type="Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.EmailTraceListener, Microsoft.Practices.EnterpriseLibrary.Logging, Version=3.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
        name="Email TraceListener" />
    

    然后你需要添加特殊来源

        <specialSources>
      <allEvents switchValue="All" name="All Events">
        <listeners>
          <add name="Email TraceListener" />
        </listeners>
      </allEvents>
      <notProcessed switchValue="All" name="Unprocessed Category" />
      <errors switchValue="All" name="Logging Errors &amp; Warnings" />
    </specialSources>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-16
      • 1970-01-01
      • 1970-01-01
      • 2011-07-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-13
      相关资源
      最近更新 更多