1
2
3
4
5
6
7
8
9
10
11
12
13
14 package org.eclipse.jetty.server.handler;
15
16 import java.io.IOException;
17
18 import javax.servlet.ServletException;
19 import javax.servlet.http.HttpServletRequest;
20 import javax.servlet.http.HttpServletResponse;
21
22 import org.eclipse.jetty.server.DispatcherType;
23 import org.eclipse.jetty.server.Request;
24 import org.eclipse.jetty.server.RequestLog;
25 import org.eclipse.jetty.server.Response;
26 import org.eclipse.jetty.server.Server;
27 import org.eclipse.jetty.util.log.Log;
28
29
30
31
32
33
34
35
36
37
38 public class RequestLogHandler extends HandlerWrapper
39 {
40 private RequestLog _requestLog;
41
42
43
44
45
46 @Override
47 public void handle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response)
48 throws IOException, ServletException
49 {
50 super.handle(target, baseRequest, request, response);
51 if (DispatcherType.REQUEST.equals(baseRequest.getDispatcherType()) && _requestLog!=null)
52 _requestLog.log((Request)request, (Response)response);
53 }
54
55
56 public void setRequestLog(RequestLog requestLog)
57 {
58
59 try
60 {
61 if (_requestLog != null)
62 _requestLog.stop();
63 }
64 catch (Exception e)
65 {
66 Log.warn (e);
67 }
68
69 if (getServer()!=null)
70 getServer().getContainer().update(this, _requestLog, requestLog, "logimpl",true);
71
72 _requestLog = requestLog;
73
74
75 try
76 {
77 if (isStarted() && (_requestLog != null))
78 _requestLog.start();
79 }
80 catch (Exception e)
81 {
82 throw new RuntimeException (e);
83 }
84 }
85
86
87
88
89
90 @Override
91 public void setServer(Server server)
92 {
93 if (_requestLog!=null)
94 {
95 if (getServer()!=null && getServer()!=server)
96 getServer().getContainer().update(this, _requestLog, null, "logimpl",true);
97 super.setServer(server);
98 if (server!=null && server!=getServer())
99 server.getContainer().update(this, null,_requestLog, "logimpl",true);
100 }
101 else
102 super.setServer(server);
103 }
104
105
106 public RequestLog getRequestLog()
107 {
108 return _requestLog;
109 }
110
111
112
113
114
115 @Override
116 protected void doStart() throws Exception
117 {
118 super.doStart();
119 if (_requestLog!=null)
120 _requestLog.start();
121 }
122
123
124
125
126
127 @Override
128 protected void doStop() throws Exception
129 {
130 super.doStop();
131 if (_requestLog!=null)
132 _requestLog.stop();
133 }
134
135
136 }