【发布时间】:2013-09-26 09:17:22
【问题描述】:
我已经编写了一个 .net 应用程序来定期处理一些文件,并且我正在使用 nlog 2.0 文件目标来记录到文件。该应用程序每 5 分钟调用一次,但实际处理仅在有文件要处理时发生。我想缓存日志,只在应用程序结束时决定日志是否有用,然后写入文件。是否有任何内置配置和方法可以用来实现这一目标?
【问题讨论】:
我已经编写了一个 .net 应用程序来定期处理一些文件,并且我正在使用 nlog 2.0 文件目标来记录到文件。该应用程序每 5 分钟调用一次,但实际处理仅在有文件要处理时发生。我想缓存日志,只在应用程序结束时决定日志是否有用,然后写入文件。是否有任何内置配置和方法可以用来实现这一目标?
【问题讨论】:
我刚刚向NLog Contrib 提交了ManualFlushTarget。
目前它不允许您清除排队的日志条目,但它允许您控制何时以及是否刷新目标。它可以很容易地适应允许您在需要时清除队列。
【讨论】:
((ManualFlushWrapper)LogManager.Configuration.FindTargetByName("manualflush_wrapper")).EmptyLogs(); 来清除日志