changeset 8325:da39f9548758

middleware: HTTP status code logging in wrapper summaries
author Mads Kiilerich <mads@kiilerich.com>
date Mon, 30 Mar 2020 15:44:47 +0200
parents ea20850dda85
children f734d107296e
files kallithea/lib/middleware/wrapper.py
diffstat 1 files changed, 4 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/kallithea/lib/middleware/wrapper.py	Mon Mar 30 16:23:37 2020 +0200
+++ b/kallithea/lib/middleware/wrapper.py	Mon Mar 30 15:44:47 2020 +0200
@@ -40,12 +40,14 @@
     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 @@
 
     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 @@
         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)