Changeset - da39f9548758
[Not reviewed]
default
0 1 0
Mads Kiilerich - 6 years ago 2020-03-30 15:44:47
mads@kiilerich.com
middleware: HTTP status code logging in wrapper summaries
1 file changed with 4 insertions and 2 deletions:
0 comments (0 inline, 0 general)
kallithea/lib/middleware/wrapper.py
Show inline comments
 
@@ -40,12 +40,14 @@ class Meter:
 
    def __init__(self, start_response):
 
        self._start_response = start_response
 
        self._start = time.time()
 
        self.status = None
 
        self._size = 0
 

	
 
    def duration(self):
 
        return time.time() - self._start
 

	
 
    def start_response(self, status, response_headers, exc_info=None):
 
        self.status = status
 
        write = self._start_response(status, response_headers, exc_info)
 
        def metered_write(s):
 
            self.measure(s)
 
@@ -77,7 +79,7 @@ class ResultIter:
 

	
 
    def close(self):
 
        self._result_close()
 
        log.info("%s responded after %.3fs with %s bytes", self._description, self._meter.duration(), self._meter.size())
 
        log.info("%s responded %r after %.3fs with %s bytes", self._description, self._meter.status, self._meter.duration(), self._meter.size())
 

	
 

	
 
class RequestWrapper(object):
 
@@ -95,5 +97,5 @@ class RequestWrapper(object):
 
        try:
 
            result = self.application(environ, meter.start_response)
 
        finally:
 
            log.info("%s responding after %.3fs", description, meter.duration())
 
            log.info("%s responding %r after %.3fs", description, meter.status, meter.duration())
 
        return ResultIter(result, meter, description)
0 comments (0 inline, 0 general)