【发布时间】:2015-04-12 14:13:12
【问题描述】:
我正在使用内存目标进行日志记录。
<target xsi:type="Memory" name="memLog" layout="${longdate} - ${message}" />
这是一个日志繁重的应用程序,最终日志变得非常大,应用程序内存不足。
有没有办法重置MemoryTarget.Logs 集合?它是一个只读属性。
【问题讨论】:
我正在使用内存目标进行日志记录。
<target xsi:type="Memory" name="memLog" layout="${longdate} - ${message}" />
这是一个日志繁重的应用程序,最终日志变得非常大,应用程序内存不足。
有没有办法重置MemoryTarget.Logs 集合?它是一个只读属性。
【问题讨论】:
MemoryTarget.Logs 属性实现了IList。为什么不像这样清除它:
MemoryTarget.Logs.Clear();
【讨论】:
Logs 有一个私人设置器,我认为Clear() 不会工作。我刚查了一下,我错了。
wageoghe 让我走上了正轨 - 谢谢! - 但你需要从实例中清除日志,而不是从类中,所以:
MyTarget.Logs.Clear();
或
LogManager.Configuration.FindTargetByName<MemoryTarget>("MyTarget").Logs.Clear();
或者,如果您公开公开日志IList<string>,消费代码可以简单地做
MyLogger.Logs.Clear();
【讨论】: