我想用 nlog做到这一点(来自 log4net docu ):
此示例显示如何仅交付重要事件。LevelEvaluator 的阈值为 WARN。这意味着将为每个记录的 WARN 或更高级别的消息发送一封电子邮件。每封电子邮件还将包含多达 512 条 (BufferSize) 任何级别的先前消息,以提供上下文。未发送的消息将被丢弃。
可能吗?
我只在codeproject上找到了这个。但它使用代表消息数量而不是日志级别刷新的包装器目标。
谢谢托比
有一个 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