我想用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