3 import java.io.BufferedWriter;
4 import java.io.FileWriter;
5 import java.io.IOException;
7 import java.text.SimpleDateFormat;
9 import java.util.Locale;
10 import java.util.logging.Level;
11 import java.util.logging.Logger;
13 import javax.servlet.http.HttpServletRequest;
15 public class RequesterLog {
16 public static final RequesterLog singleton = new RequesterLog();
17 private Writer writer;
18 private Logger LOG = Logger.getLogger(RequesterLog.class.getName());
19 private SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MMM/yyyy:HH:mm:ss Z", Locale.US);
21 public void writeRequest(HttpServletRequest rq) {
25 writer = new BufferedWriter(new FileWriter("access.log", true), 1024);
28 synchronized (writer) {
29 writer.write("[" + dateFormat.format(new Date()) + "] ");
30 writer.write(rq.getRemoteAddr() + " " + rq.getRequestURI() + " " + rq.getQueryString() + "\n");
33 } catch (IOException e) {
34 LOG.log(Level.SEVERE, "Fails to log requester information", e);