由于我有一个全局异常处理程序,它通过电子邮件报告未捕获的错误,下一步是通过收集大约 10-20 行日志来为其添加一些上下文。
所以我这样使用MemoryTarget
:
MemoryTarget _logTarget;
_logTarget = new MemoryTarget();
_logTarget.Layout = "${longdate}|${level:uppercase=true}|${logger}|${message}${exception}";
LoggingRule loggingRule = new LoggingRule("*", LogLevel.Debug, _logTarget);
LogManager.Configuration.AddTarget("exceptionMemory", _logTarget);
LogManager.Configuration.LoggingRules.Add(loggingRule);
LogManager.Configuration.Reload();
包含此内容的应用程序应该永远运行,如果我将日志留在内存中,未选中,我将巧妙地设计内存泄漏。
如何解决这个问题?如何截断MemoryTarget.Logs
最多有 100 行?