Ho un'applicazione Web e voglio utilizzare un registro diverso per ogni utente, così posso avere una "cronologia" di ciò che l'utente ha fatto sul sistema.Un log diverso per ogni utente che utilizza Log4j
Questo è quello che ho finora:
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;
}
}
Il problema è che, come un'applicazione web, è multithreaded, quindi per quanto ne so non posso usare RootLogger
tutto il tempo e cambiare le appenders a seconda dell'utente chi sto registrando Penso che dovrei creare diversi Logger
per ciascun utente, ma è corretto?
quanti utenti potresti avere? – dogbane
tra 1.000 e 10.000 – pakore
Sei consapevole del fatto che molto probabilmente non ti sarà permesso di aprire 10.000 file contemporaneamente nel modulo di log del tuo server web? –