mirror of
https://github.com/frappe/gunicorn.git
synced 2026-01-14 11:09:11 +08:00
fix gevent_pywsgi worker. close #314
access_log arity has changed in 0.14.0. Apply this change to the pywsgi worker as well.
This commit is contained in:
parent
b7b6179593
commit
d6012fa84b
@ -175,7 +175,12 @@ class Logger(object):
|
||||
}
|
||||
|
||||
# add request headers
|
||||
atoms.update(dict([("{%s}i" % k.lower(),v) for k, v in req.headers]))
|
||||
if hasattr(req, 'headers'):
|
||||
req_headers = req.headers
|
||||
else:
|
||||
req_headers = req
|
||||
|
||||
atoms.update(dict([("{%s}i" % k.lower(),v) for k, v in req_headers]))
|
||||
|
||||
# add response headers
|
||||
atoms.update(dict([("{%s}o" % k.lower(),v) for k, v in resp.headers]))
|
||||
|
||||
@ -96,13 +96,29 @@ class GeventWorker(AsyncWorker):
|
||||
gevent.core.dns_init()
|
||||
super(GeventWorker, self).init_process()
|
||||
|
||||
|
||||
class GeventResponse(object):
|
||||
|
||||
status = None
|
||||
headers = None
|
||||
response_length = None
|
||||
|
||||
|
||||
def __init__(self, status, headers, clength):
|
||||
self.status = status
|
||||
self.headers = headers
|
||||
self.response_length = clength
|
||||
|
||||
class PyWSGIHandler(pywsgi.WSGIHandler):
|
||||
|
||||
def log_request(self):
|
||||
start = datetime.fromtimestamp(self.time_start)
|
||||
finish = datetime.fromtimestamp(self.time_finish)
|
||||
response_time = finish - start
|
||||
self.server.log.access(self, self.environ, response_time)
|
||||
resp = GeventResponse(self.status, self.response_headers,
|
||||
self.response_length)
|
||||
req_headers = [h.split(":", 1) for h in self.headers.headers]
|
||||
self.server.log.access(resp, req_headers, self.environ, response_time)
|
||||
|
||||
def get_environ(self):
|
||||
env = super(PyWSGIHandler, self).get_environ()
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user