我需要自己清理 NLog MDLC 吗?



我在 REST 服务器中使用 NLog 4.5.10 和 C# 4.7.1。 在那里,我正在使用方法MappedDiagnosticsLogicalContext.Set(item, value)将请求的一些参数添加到我的日志消息中。

现在的问题是:我必须手动清理它们还是这些词典也被垃圾回收?

据我所知,字典绑定到当前线程(通过使用 ThreadId?当我有很多请求并且 ThreadId 再次开始计数为零时,会发生什么情况?当相应的线程被销毁时,具有相同 Id 的最后一个线程的值仍然存在,或者这些对象是否被销毁,

这是否会发生?最好的问候,丹尼尔

当线程对象被垃圾回收时,异步上下文将被"销毁"。但是,如果线程存在于线程池中,那么它可能"永远"存在。

也许你可以使用SetScoped:

using (MappedDiagnosticsLogicalContext.SetScoped("Property", "PropertyValue")) {
// "Property" item is present in current context
}

另请参阅 https://github.com/NLog/NLog/wiki/MDLC-Layout-Renderer#scoped-item

相关内容

  • 没有找到相关文章

最新更新