我想使用nlog:
执行此操作(来自log4net docu)此示例显示如何仅传递重要事件。 LevelEvaluator指定的阈值为WARN。这意味着将针对记录的每个WARN或更高级别的消息发送电子邮件。每封电子邮件还将包含最多512个(BufferSize)以前任何级别的消息以提供上下文。未发送的邮件将被丢弃。
有可能吗?
我只在codeproject上找到了this。 但它使用一个包装器目标,它代表消息数而不是在日志级别上刷新。
由于 托比
答案 0 :(得分:1)
有一个QueuedTargetWrapper(一个缓冲日志事件并将它们分批发送到包装目标的目标) 这似乎符合要求。我还没有尝试过。
有一个相关的讨论“The Benefits of Trace Level Logging in Production Without the Drawback of Enormous Files”
答案 1 :(得分:0)
简单的解决方案,将在错误时写入最后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