【问题标题】:How to clear MemoryTarget Logs in NLog?如何清除 NLog 中的 MemoryTarget 日志?
【发布时间】:2015-04-12 14:13:12
【问题描述】:

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

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

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

有没有办法重置MemoryTarget.Logs 集合?它是一个只读属性。

【问题讨论】:

    标签: c# winforms nlog


    【解决方案1】:

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

    MemoryTarget.Logs.Clear();
    

    【讨论】:

    • 谢谢!由于Logs 有一个私人设置器,我认为Clear() 不会工作。我刚查了一下,我错了。
    • 是的,C# 不允许您更改集合的引用,但允许您修改其内容。
    【解决方案2】:

    wageoghe 让我走上了正轨 - 谢谢! - 但你需要从实例中清除日志,而不是从类中,所以:

    MyTarget.Logs.Clear();
    

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

    或者,如果您公开公开日志IList&lt;string&gt;,消费代码可以简单地做

    MyLogger.Logs.Clear();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-04-20
      • 2011-12-23
      • 2014-07-02
      • 2019-01-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多