在Web应用程序

时间:2016-05-10 16:16:10

标签: java html web log4j2

我想记录我的网络应用的当前用户。我尝试使用自己的StrLookup接口实现,我调用了类似于Environment.getCurrentUser()的东西,但是在记录器初始化期间只执行了一次查找。是否有一个特定于线程的查找功能,每次都会执行,比如模式中的关键字?

1 个答案:

答案 0 :(得分:1)

我所做的是使用servlet过滤器或Spring Interceptor,并在请求之前将项添加到Log4j2 ThreadContext,然后在请求之后删除它们。这将导致信息包含在每个记录事件中,并且可以通过%X转换器在模式布局中引用。

有关示例,请参阅http://logging.apache.org/log4j/2.x/manual/eventlogging.html

如果您想编写一个必须对所涉及的客户或客户敏感的应用程序,但您不希望通过每种方法传递客户或客户端ID,这将非常有用。