log4j2 fish标记日志,用于同一用户的所有交互

时间:2014-11-28 14:46:12

标签: java log4j2

我正在使用ThreadContext在我的java web应用程序中用UUID标记所有日志。我使用过滤器来执行此操作,使用doFilter方法中的此代码来标记每个请求。

     if (request instanceof HttpServletRequest){
         ThreadContext.put("id", UUID.randomUUID().toString());
     }
         chain.doFilter(request, response);

这会在每个执行的新请求中发生变化,这是正常的,因为它在每个请求中都被调用。我想要做的是为同一个会话/用户/与应用程序的交互的所有交互使用相同的标记。

我考虑在ThreadContext中添加用户名,并每次检查会话用户名是否与我在线程上下文中的用户名不同,但由于ThreadContext是线程安全的,并且为每个请求生成了一个新线程,这不起作用。

你会怎么做呢?

log4j2中有标准方法吗?

另外,这是鱼标记的想法,还是不适合这样的任务?

0 个答案:

没有答案