+package pnews.servlet;
+
+import java.io.BufferedWriter;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.Writer;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import javax.servlet.http.HttpServletRequest;
+
+public class RequesterLog {
+ public static final RequesterLog singleton = new RequesterLog();
+ private Writer writer;
+ private Logger LOG = Logger.getLogger(RequesterLog.class.getName());
+
+ public void writeRequest(HttpServletRequest rq) {
+ try {
+ synchronized(this) {
+ if (writer == null)
+ writer = new BufferedWriter(new FileWriter("access.log", true), 1024);
+ }
+
+ synchronized (writer) {
+ writer.write(rq.getRemoteAddr() + " " + rq.getRequestURI() + " " + rq.getQueryString() + "\n");
+ writer.flush();
+ }
+ } catch (IOException e) {
+ LOG.log(Level.SEVERE, "Fails to log requester information", e);
+ }
+ }
+}