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