为什么我们在Logback / SLF4J中使用MDC.remove()?

时间:2014-05-14 06:13:58

标签: logging slf4j logback mdc

我知道在客户端服务器中使用MDC,记录以便找出哪个客户端的日志。 (reference

但为什么我们使用MDC.remove()

这是一个内存效率问题吗?

2 个答案:

答案 0 :(得分:3)

另一个原因是该值已过时。例如,如果您在MDC中有用户名但用户已经注销,则您有过时的信息。如果你仍然记录它,它可能会完全误导调试。

答案 1 :(得分:2)

通常,put()操作应该通过相应的remove()操作来平衡。否则,MDC将包含某些键的陈旧值。我们建议尽可能在finally块中执行remove()操作,确保无论代码的执行路径如何都要调用它们。