我喜欢在我的应用程序中使用 MDC 日志记录字段,因为它使查找所有相关的日志行变得非常容易。我还发现在处理开始时 clear() MDC 上下文要容易得多,因为我知道我的应用程序的入口点在哪里,但是我或其他开发人员可能忘记调用 MDC.clear( )。
所以我的问题是,我这样做有什么缺点吗?根据经验,在处理开始与结束时始终清除上下文。
要清楚,如果我是从头开始编写代码,我会这样做:
MDC.put();
try {
...
} finally {
MDC.clear();
}
但有时我必须使用基类或库中没有任何 MDC 相关代码的东西,所以我按照我描述的方式这样做,因为我不想从库中复制基类只是为了添加几行 MDC 代码...