Я считаю, что можно установить контекст Log4j (SL4J) MDC в потокобезопасная образом в общем фильтр (код из http://blog.trifork.com/2013/06/06/adding-user-info-to-log-entries-in-a-multi-user-app-using-mapped-diagnostic-context/)Log4j (SLF4J) MDC Контекст в Struts 2 перехватчик
import org.slf4j.MDC;
import javax.servlet.*;
import java.io.IOException;
public class MDCFilter implements Filter {
@Override
public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain)
throws IOException, ServletException {
User user= (User) session.getAttribute("USerSession");
MDC.put("userName", user.getUserName());
try {
chain.doFilter(req, resp);
} finally {
MDC.remove("userName");
}
}
}
Может Я делаю тот же подход в перехватчике Struts 2!! Я задаюсь вопросом о проблемах, связанных с потоками.
Фильтры перехватчиков и сервлетов Struts 2 не являются поточно-защищенными, а реализация MDC является потокобезопасной, поэтому, если вышеприведенный код работает нормально в фильтре, теоретически он должен быть защищен рабочей резьбой в перехватчике.
Любые комментарии?!