log4j根据应用程序的登录用户在不同文件中添加日志

时间:2019-01-07 06:27:31

标签: java log4j

我正在使用log4j.1.2.16登录到托管在tomcat中的Java应用程序。 下面给出的是我的log4j.properties

ColumnID|   Column1 |   value
--------|-----------|-----------
1       |   ABC     |   10
1       |   ABC     |   11
1       |   ABC     |   12
2       |   PQR     |   20
2       |   PQR     |   21
2       |   PQR     |   22

我想为(同一应用程序的)不同用户维护不同的日志文件。例如,如果user1登录到我的应用程序,我希望日志进入user1.log文件。我将在会话对象和静态线程局部变量中登录用户信息。 我该如何实现?

1 个答案:

答案 0 :(得分:2)

这里有几种方法可以实现这一目标。

  1. 您可以使用RoutingAppender来实现这一目标。
  2. 像提到的here一样,以编程方式配置日志记录。
  3. 如果您可以更改为Logback,则可以使用SiftingAppender来考虑MDC。

注意:这些解决方案中的许多解决方案都要求您在MDC或ThreadContext之类的共享上下文中设置UserId,因此请确保在处理请求后将其清除。