小编cra*_*abe的帖子

在处理开始时而不是在结束时调用 MDC.clear() 有什么缺点吗?

我喜欢在我的应用程序中使用 MDC 日志记录字段,因为它使查找所有相关日志行变得更加容易。我还发现在处理开始时清除 MDC 上下文要容易得多,因为我知道应用程序的入口点在哪里,但有许多可能的异常路径,我自己或其他开发人员可能忘记调用 MDC.clear( )。

所以我的问题是,我这样做有什么缺点吗?根据经验,始终在处理开始和结束时清除上下文。

为了清楚起见,如果我从头开始编写代码,我会这样做:

MDC.put();
try {
...
} finally {
  MDC.clear();
}
Run Code Online (Sandbox Code Playgroud)

但有时我必须使用基类或库中没有任何 MDC 相关代码的内容,因此我按照我所描述的方式进行操作,因为我不想从库中复制基类只是为了添加几行 MDC 代码...

java logging slf4j mdc

5
推荐指数
1
解决办法
8360
查看次数

为什么要为除 REQUEST 之外的 DispatcherType 编写 servlet 过滤器?

我曾经见过很多 servlet 过滤器,它们可以做各种各样的事情,但总是根据请求而不做其他事情。有没有人有任何用例或示例来说明为什么为除 REQUEST 之外的其他调度程序类型编写 servlet 过滤器可能有用?

javax.servlet 包中的 DispatcherTypes。

public enum DispatcherType {
  FORWARD, INCLUDE, REQUEST, ASYNC, ERROR
}
Run Code Online (Sandbox Code Playgroud)

java servlet-filters

4
推荐指数
1
解决办法
3438
查看次数

标签 统计

java ×2

logging ×1

mdc ×1

servlet-filters ×1

slf4j ×1