Разный журнал для каждого пользователя, использующего Log4j

У меня есть веб-приложение, и я хочу использовать разные журналы для каждого пользователя, чтобы иметь «историю» того, что пользователь делал в системе.

Это то, что у меня есть пока:

import java.io.File;
import java.io.IOException;

import org.apache.log4j.DailyRollingFileAppender;
import org.apache.log4j.FileAppender;
import org.apache.log4j.SimpleLayout;
import org.apache.log4j.Logger;

public class LogManager {

    public Logger getLog(String username) throws IOException{
        SimpleLayout layout = new SimpleLayout(); 
        FileAppender appender = new DailyRollingFileAppender(layout, "users"+File.pathSeparator+username+File.pathSeparator+username, "'.'yyyy-MM");

        // configure the appender here, with file location, etc
        appender.activateOptions();
        Logger logger = Logger.getRootLogger();
        logger.addAppender(appender);
        return logger;
    }

}

Проблема в том, что веб-приложение является многопоточным, поэтому, AFAIK, я не могу постоянно использовать RootLogger и менять приложения в зависимости от пользователя, которого я регистрирую. Я думаю, мне следует создать разные Регистраторы для каждого пользователя, но правильно ли это?

5
задан pakore 6 October 2010 в 07:37
поделиться