如何清除 NLog 中的 MemoryTarget 日志?

How to clear MemoryTarget Logs in NLog?

我正在使用内存目标进行日志记录。

<target xsi:type="Memory" name="memLog" layout="${longdate} - ${message}" />

这是一个日志繁重的应用程序,最终日志变得非常大,应用程序内存不足。

有什么方法可以重置 MemoryTarget.Logs collection 吗?这是一个 read-only 属性.

MemoryTarget.Logs 属性 实现 IList。为什么不像这样清除它:

MemoryTarget.Logs.Clear();

wageoghe 让我走上正轨 - 谢谢! - 但您需要从实例中清除日志,而不是 class,因此:

MyTarget.Logs.Clear();

LogManager.Configuration.FindTargetByName<MemoryTarget>("MyTarget").Logs.Clear();

或者,如果您要公开日志 IList<string>,使用代码可以简单地执行

MyLogger.Logs.Clear();