7
7
import time
8
8
from asyncio import coroutine , Task , start_server
9
9
10
- log = logging .getLogger (__name__ )
10
+ log = logging .getLogger ('microhttp' )
11
11
12
12
class HTTPException (Exception ):
13
13
def __init__ (self , status_code , msg ):
@@ -85,7 +85,8 @@ def end(self):
85
85
dur = time .time () - self .start_time
86
86
Request .TOTAL_REQ += 1
87
87
Request .TOTAL_TIME += dur
88
- log .debug ('served request for %s in %s' , self .full_path , dur )
88
+ log .info ('%s %s %s %sms' , self .status_code , self .method ,
89
+ self .full_path , round (dur * 1000 , 2 ))
89
90
log .debug ('avg req time %0.6f for %d requests' ,
90
91
Request .TOTAL_TIME / Request .TOTAL_REQ , Request .TOTAL_REQ )
91
92
@@ -99,6 +100,7 @@ def __init__(self, writer, request, server):
99
100
self .is_sent = False
100
101
self .is_head_request = False
101
102
self .headers_sent = False
103
+ self .status_code = - 1
102
104
103
105
@coroutine
104
106
def send_headers (self , length = 0 , status = 200 , headers = {}):
@@ -111,6 +113,7 @@ def send_headers(self, length=0, status=200, headers={}):
111
113
#yield from self.writer.drain()
112
114
log .debug ('headers written' )
113
115
self .headers_sent = True
116
+ self .request .status_code = status
114
117
115
118
@coroutine
116
119
def send (self , d ):
@@ -216,7 +219,7 @@ def f(req, res):
216
219
217
220
if meth .lower () == method .lower ():
218
221
cb = cb_wrapper (callback , cb_kwargs )
219
- elif meth .lower () == 'head' and method . lower () == 'get' :
222
+ elif meth .lower () == 'head' :
220
223
cb = cb_wrapper (callback , cb_kwargs , is_head = True )
221
224
if cb :
222
225
break # we matched one
@@ -231,7 +234,7 @@ def handle(self, reader, writer, reused=False):
231
234
log .debug ('client disconnect' )
232
235
writer .close ()
233
236
return
234
- log .debug ('NEW REQUEST %s' , 'reused' if reused else '' )
237
+ log .debug ('NEW REQUEST %s' , '( reused connection) ' if reused else '' )
235
238
response = Response (writer , request , self )
236
239
237
240
cb = self .select_callback (request .path , request .method )
0 commit comments