Nlog:当 Loglevel >= Loglevel.最后 x 条消息出错时发送邮件



我想用nlog:来做这件事(从log4net-docu)

此示例显示了如何仅交付重要事件。指定的LevelEvaluator的阈值为WARN。这意味着将为记录的每个WARN或更高级别消息发送一封电子邮件。每封电子邮件还将包含多达512条(BufferSize)以前的任何级别的消息,以提供上下文。未发送的邮件将被丢弃。

有可能吗

我只在代码项目中发现了这个。但它使用了一个包装器目标,它代表消息的数量而不是日志级别进行刷新。

谢谢Tobi

有一个QueuedTargetWrapper(一个缓冲日志事件并将其分批发送到包装目标的目标)这似乎符合要求。我还没试过。

有一个相关的讨论"跟踪级别日志记录在生产中的好处而没有巨大文件的损失"

在出现错误时写入最后200个日志事件的简单解决方案:

  <target name="String" xsi:type="AutoFlushWrapper" condition="level >= LogLevel.Error" flushOnConditionOnly="true">
     <target xsi:type="BufferingWrapper"
          bufferSize="200"
          overflowAction="Discard">
        <target xsi:type="wrappedTargetType" ...target properties... />
     </target>
  </target>

另请参阅:https://github.com/nlog/NLog/wiki/BufferingWrapper-target

最新更新