Changeset 1069
- Timestamp:
- 06/05/08 04:19:51 (4 months ago)
- Files:
-
- trunk/mango/net/servlet/Servlet.d (modified) (2 diffs)
- trunk/mango/net/servlet/ServletProvider.d (modified) (6 diffs)
- trunk/mango/net/servlet/tools/AdminServlet.d (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/mango/net/servlet/Servlet.d
r1052 r1069 15 15 private import tango.time.Time; 16 16 17 public import tango.util.log.Log; 18 17 19 public import tango.net.http.HttpConst, 18 20 tango.net.http.HttpHeaders; … … 54 56 void init (ServletConfig config) 55 57 { 58 } 59 60 /********************************************************************** 61 62 return an optional logger instance 63 64 **********************************************************************/ 65 66 Logger logger () 67 { 68 return null; 56 69 } 57 70 } trunk/mango/net/servlet/ServletProvider.d
r1047 r1069 14 14 15 15 private import tango.net.Uri; 16 17 private import tango.util.log.Log; 18 19 private import tango.time.StopWatch; 16 20 17 21 private import tango.text.Regex, … … 68 72 class ServletProvider : ServiceProvider 69 73 { 74 private Logger log; 70 75 private QueuedCache cache; 71 76 private HashMap proxies; … … 81 86 **********************************************************************/ 82 87 83 this ( uint urls = 2048)88 this (Logger log, uint urls = 2048) 84 89 { 85 90 // small, low contention hashmap for proxies and contexts … … 93 98 // named '/', permitting usage of context.getName() 94 99 // to be greatly simplified 95 addContext (new ServletContext ("")); 100 addContext (new ServletContext ("", log)); 101 102 // remember logger 103 this.log = log; 96 104 } 97 105 … … 376 384 PathMapping pm; 377 385 char[] path; 386 StopWatch timer; 378 387 ServletRequest request; 379 388 ServletResponse response; 380 389 bool addToCache; 390 391 // begin timer 392 timer.start; 381 393 382 394 // we know what these are since we created them (above) … … 411 423 412 424 // execute servlet 413 pm.mapping.proxy.getServlet.service (request, response); 425 auto servlet = pm.mapping.proxy.getServlet; 426 servlet.service (request, response); 427 428 // log execution time 429 auto log = servlet.logger; 430 if (log) 431 log.info (Log.format() ("took {}us", timer.microsec)); 414 432 415 433 // flush output on behalf of servlet ... trunk/mango/net/servlet/tools/AdminServlet.d
r1062 r1069 265 265 this (ServletProvider provider, char[] name) 266 266 { 267 super (name); 267 auto servlet = new AdminServlet; 268 super (name, servlet.log); 268 269 provider.addContext (this); 269 IRegisteredServlet logger = provider.addServlet (new AdminServlet(), "logger", this);270 auto logger = provider.addServlet (servlet, "logger", this); 270 271 provider.addMapping ("/logger", logger); 271 272 }
