2 package jp.gr.java_conf.u6k.money_notebook.web.filter;
\r
4 import java.io.IOException;
\r
5 import java.util.Enumeration;
\r
6 import java.util.logging.Logger;
\r
8 import javax.servlet.Filter;
\r
9 import javax.servlet.FilterChain;
\r
10 import javax.servlet.FilterConfig;
\r
11 import javax.servlet.ServletException;
\r
12 import javax.servlet.ServletRequest;
\r
13 import javax.servlet.ServletResponse;
\r
14 import javax.servlet.http.HttpServletRequest;
\r
16 public class RequestLogFilter implements Filter {
\r
18 private static final Logger LOG = Logger.getLogger(RequestLogFilter.class.getName());
\r
21 public void destroy() {
\r
25 public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
\r
26 if (request instanceof HttpServletRequest) {
\r
27 HttpServletRequest req = (HttpServletRequest) request;
\r
29 StringBuilder log = new StringBuilder();
\r
30 log.append("[Request]\r\n");
\r
31 log.append("AuthType: ").append(req.getAuthType()).append("\r\n");
\r
32 log.append("CharacterEncoding: ").append(req.getCharacterEncoding()).append("\r\n");
\r
33 log.append("ContentLength: ").append(req.getContentLength()).append("\r\n");
\r
34 log.append("ContentType: ").append(req.getContentType()).append("\r\n");
\r
35 log.append("ContextPath: ").append(req.getContextPath()).append("\r\n");
\r
36 log.append("LocalAddr: ").append(req.getLocalAddr()).append("\r\n");
\r
37 log.append("Locale: ").append(req.getLocale()).append("\r\n");
\r
38 log.append("LocalName: ").append(req.getLocalName()).append("\r\n");
\r
39 log.append("LocalPort: ").append(req.getLocalPort()).append("\r\n");
\r
40 log.append("Method: ").append(req.getMethod()).append("\r\n");
\r
41 log.append("PathInfo: ").append(req.getPathInfo()).append("\r\n");
\r
42 log.append("PathTranslated: ").append(req.getPathTranslated()).append("\r\n");
\r
43 log.append("Protocol: ").append(req.getProtocol()).append("\r\n");
\r
44 log.append("QueryString: ").append(req.getQueryString()).append("\r\n");
\r
45 log.append("RemoteAddr: ").append(req.getRemoteAddr()).append("\r\n");
\r
46 log.append("RemoteHost: ").append(req.getRemoteHost()).append("\r\n");
\r
47 log.append("RemotePort: ").append(req.getRemotePort()).append("\r\n");
\r
48 log.append("RemoteUser: ").append(req.getRemoteUser()).append("\r\n");
\r
49 log.append("RequestURI: ").append(req.getRequestURI()).append("\r\n");
\r
50 log.append("RequestURL: ").append(req.getRequestURL()).append("\r\n");
\r
51 log.append("Scheme: ").append(req.getScheme()).append("\r\n");
\r
52 log.append("ServerName: ").append(req.getServerName()).append("\r\n");
\r
53 log.append("ServerPort: ").append(req.getServerPort()).append("\r\n");
\r
54 log.append("ServletPath: ").append(req.getServletPath()).append("\r\n");
\r
57 for (Enumeration<?> headerNameEnu = req.getHeaderNames(); headerNameEnu.hasMoreElements();) {
\r
58 String headerName = (String) headerNameEnu.nextElement();
\r
60 for (Enumeration<?> headerValueEnu = req.getHeaders(headerName); headerValueEnu.hasMoreElements();) {
\r
61 Object headerValue = headerValueEnu.nextElement();
\r
63 log.append("Header: ").append(headerName).append(": ").append(headerValue).append("\r\n");
\r
67 RequestLogFilter.LOG.config(log.toString());
\r
70 chain.doFilter(request, response);
\r
74 public void init(FilterConfig config) throws ServletException {
\r