NLog:当Nlog发送邮件时所有邮件

时间:2017-02-15 20:07:49

标签: nlog

我从这里http://blog.marko-kastelec.com/2015/10/28/nlog-tutorial/阅读了这篇关于nlog邮件设置的文章。

<target name="mailbuffer" xsi:type="BufferingWrapper" slidingTimeout="false" bufferSize="100" flushTimeout="-1">
  <target name="mail" 
          xsi:type="Mail"
          smtpServer="my.smtp.server.com"
          smtpPort="port"
          smtpUserName="user.name"
          smtpPassword="password"
          subject="${machinename} - My subject string (${shortdate:format=dd. MM. yyyy})"
          from="address.to.send.from@mail.com"
          to="address.to.send.to@mail.com"
          layout="${longdate}   LEVEL=${uppercase:${level}},   LOCATION=${callsite:className=true:includeSourcePath=true:methodName=true},               
                  MESSAGE=${message}${newline} EXCEPTION=${exception:format=tostring,StackTrace}${newline}" />
</target>

1)我的问题是nlog会发送邮件吗?

2)我们可以控制邮件发送活动吗?说我想调用nlog的一些功能,所有记录的条目将被邮寄而不是自动发送邮件,条目将从内存中刷新?

如果有可能,请指导我以及如何定制它。感谢

1 个答案:

答案 0 :(得分:2)

  

1)我的问题是nlog会发送邮件吗?

这完全取决于您的配置。一些可能性:

对于每条日志消息

e.g。每一个警告,错误和致命信息:

<rules>
  <logger name="*" minlevel="Warn" writeTo="mail" />
</rules>

记录分组的消息

在一封邮件中分组多封邮件。同样的规则,也可以替换目标。例如。 当有20条错误消息或最后一次错误后10分钟发送邮件。

<target xsi:type="BufferingWrapper" name="mailLog1" slidingTimeout="true" bufferSize="20" flushTimeout="600000">
      <target xsi:type="Mail" name="mail" ../>


</target>

并写入mailLog1,例如

<rules>
  <logger name="*" level="Error" writeTo="mailLog1" />
</rules>

限制消息

发送每个事件的消息,每10分钟最多5条消息。

<target name='limiting' type='LimitingWrapper' messagelimit='5' interval='0:10:00'>
 <target name="mail" xsi:type="Mail"
            ...   

    />
</target>
...

<rules>
  <logger name="*" level="Error" writeTo="limiting" />
</rules>

缓冲区,但在出现错误时发送

缓冲所有消息并在发生错误时发送:

<target name="file" xsi:type="AutoFlushWrapper" condition="level >= LogLevel.Error">
  <target xsi:type="BufferingWrapper" ..>
    <target name="mail" xsi:type="Mail"


    />
  </target>
</target>
  

2)我们可以控制邮件发送活动吗?说我想调用nlog的一些功能,所有记录的条目将被邮寄而不是自动发送邮件,条目将从内存中刷新?

参见示例。您还可以将所有包装器目标与其他目标或其他包装器目标组合在一起。请参阅documentation for the possible (wrapper) targets