OSDN Git Service

i
[luz/luz.git] / luz2 / src / com / lavans / luz2 / http / AccessLogFilter.java
1 /* $Id: AccessLogFilter.java 94 2008-12-18 11:07:17Z dobashi $ */\r
2 package com.lavans.luz2.http;\r
3 \r
4 import java.io.IOException;\r
5 \r
6 import javax.servlet.Filter;\r
7 import javax.servlet.FilterChain;\r
8 import javax.servlet.FilterConfig;\r
9 import javax.servlet.ServletException;\r
10 import javax.servlet.ServletRequest;\r
11 import javax.servlet.ServletResponse;\r
12 import javax.servlet.http.HttpServletRequest;\r
13 import javax.servlet.http.HttpSession;\r
14 \r
15 import org.apache.commons.logging.Log;\r
16 import org.apache.commons.logging.LogFactory;\r
17 \r
18 /**\r
19  * @author dobashi\r
20  *\r
21  */\r
22 public class AccessLogFilter implements Filter {\r
23         private static Log logger = LogFactory.getLog(AccessLogFilter.class.getName());\r
24 \r
25         /* (非 Javadoc)\r
26          * @see javax.servlet.Filter#init(javax.servlet.FilterConfig)\r
27          */\r
28         public void init(FilterConfig filterConfig) throws ServletException {\r
29         }\r
30 \r
31         /* (非 Javadoc)\r
32          * @see javax.servlet.Filter#doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain)\r
33          */\r
34         public void doFilter(ServletRequest req, ServletResponse res,\r
35                         FilterChain chain) throws IOException, ServletException {\r
36 \r
37             // HttpServletRequest\r
38                 HttpServletRequest request = (HttpServletRequest) req;\r
39             String userId = getUserId(request);\r
40 \r
41                 // アクションのレスポンスタイムを表示(jsp処理は含まず)\r
42                 long startTime = System.currentTimeMillis();\r
43 \r
44                 chain.doFilter(req, res);\r
45 \r
46             // 実行時間のログを出力\r
47             long delta = System.currentTimeMillis() - startTime;\r
48 \r
49                 logger.info(userId + "\t"+ request.getServletPath() +"\t"+ delta + " ms\t");\r
50         }\r
51 \r
52     /* (非 Javadoc)\r
53          * @see javax.servlet.Filter#destroy()\r
54          */\r
55         public void destroy() {\r
56 \r
57         }\r
58 \r
59         /**\r
60          * ユーザーIDの取得\r
61          * @param session\r
62          * @return\r
63          */\r
64         protected String getUserId(HttpServletRequest request){\r
65                 HttpSession session = request.getSession();\r
66                 String userId = request.getRemoteHost()+"\t"+session.getId();\r
67                 return userId;\r
68         }\r
69 \r
70 }\r