3

我知道 MDC 用于客户端服务器,进行日志记录以找出哪个日志用于哪个客户端。(参考

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

是内存效率问题吗?

4

2 回答 2

3

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

于 2014-05-14T08:31:31.527 回答
2

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

于 2014-08-22T03:04:40.493 回答