Tôi có một ứng dụng web và tôi muốn sử dụng nhật ký khác cho mọi người dùng, vì vậy tôi có thể có một "lịch sử" về những gì người dùng đã thực hiện trên hệ thống.Một nhật ký khác nhau cho mỗi người dùng sử dụng Log4j
Đây là những gì tôi có cho đến nay:
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;
}
}
Vấn đề là, như một webapplication, là đa luồng, vì vậy AFAIK tôi không thể sử dụng RootLogger
tất cả các thời gian và thay đổi appenders tùy thuộc vào người sử dụng tôi đang đăng nhập. Tôi nghĩ rằng tôi nên tạo khác nhau Logger
cho mỗi người dùng, nhưng điều đó có đúng không?
bạn có bao nhiêu người dùng? – dogbane
giữa 1.000 và 10.000 – pakore
Bạn nhận thức được rằng nhiều khả năng bạn sẽ không được phép mở 10.000 tệp cùng một lúc trong mô-đun nhật ký máy chủ web của mình? –