当servlet线程完成执行时,清除org.apache.log4j.NDC
的首选方法是什么?
NDC.clear()
或
NDC.remove()
感谢您的帮助。
答案 0 :(得分:1)
这两种方法的文档似乎很清楚,所以我认为答案取决于它在做什么:
NDC.clear()
-清空上下文,但如果线程可能用于其他用途,则将对象留给周围重用:
清除任何嵌套的诊断信息(如果有)。在可能在不同的不相关上下文中反复使用同一线程的情况下,此方法很有用。
NDC.remove()
-完全删除上下文,以便回收其内存。
删除此线程的诊断上下文。
每个通过调用push(java.lang.String)创建诊断上下文的线程都应在退出之前调用此方法。否则,VM不能回收线程使用的内存。