我有一個web應用程序,我想爲每個用戶使用不同的日誌,所以我可以擁有用戶在系統上執行的操作的「歷史記錄」。每個使用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;
}
}
的問題是,作爲一個web應用,是多線程的,所以據我所知,我不能使用RootLogger
所有的時間,並更改取決於用戶的追加程序我正在登錄的人。我想我應該爲每個用戶創建不同的Logger
,但是這是否正確?
你有多少用戶? – dogbane 2010-10-06 08:06:40
介於1.000和10.000之間 – pakore 2010-10-06 08:11:24
您知道您很可能不允許在Web服務器日誌模塊中同時打開10.000個文件嗎? – 2010-10-06 08:19:24