У меня есть веб-приложение, и я хочу использовать разные журналы для каждого пользователя, чтобы иметь «историю» того, что пользователь делал в системе.
Это то, что у меня есть пока:
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
и менять приложения в зависимости от пользователя, которого я регистрирую. Я думаю, мне следует создать разные Регистраторы
для каждого пользователя, но правильно ли это?