SLF4J MDC 的替代品

Alternatives to SLF4J MDC

我正在尝试记录在我的 JSF 应用程序中发起每个请求的用户名,但是显然 MDC on a web app server (thread pool) is risky

我已经看到 MDC 在使用 EJB @Asynchronous 调用时泄漏到一个新的调用中,这是我没有预料到的。

有哪些选择?我宁愿不必依赖记住将用户名放在每个日志调用上。我包装 slf4j 吗?

在 try-finally 块中用 remove(..) 清除 MDC put(..)

MDC.put("system", "fedora");
try {
    // your code here
} finally {
    MDC.remove("system");
}

以便在您的代码具有 运行.

后不会保留任何状态