Log response body for failed requests

Addresses #346
This commit is contained in:
Darryl Ring
2016-02-01 09:32:43 +01:00
committed by Honza Král
parent 0f7517a7dd
commit a9b8f86547
3 changed files with 6 additions and 3 deletions
+4 -1
View File
@@ -75,7 +75,7 @@ class Connection(object):
if tracer.isEnabledFor(logging.DEBUG):
tracer.debug('#[%s] (%.3fs)\n#%s', status_code, duration, _pretty_json(response).replace('\n', '\n#') if response else '')
def log_request_fail(self, method, full_url, body, duration, status_code=None, exception=None):
def log_request_fail(self, method, full_url, body, duration, status_code=None, response=None, exception=None):
""" Log an unsuccessful API call. """
logger.warning(
'%s %s [status:%s request:%.3fs]', method, full_url,
@@ -89,6 +89,9 @@ class Connection(object):
logger.debug('> %s', body)
if response is not None:
logger.debug('< %s', response)
def _raise_error(self, status_code, raw_data):
""" Locate appropriate exception and raise it. """
error_message = raw_data
+1 -1
View File
@@ -74,7 +74,7 @@ class RequestsHttpConnection(Connection):
# raise errors based on http status codes, let the client handle those if needed
if not (200 <= response.status_code < 300) and response.status_code not in ignore:
self.log_request_fail(method, url, body, duration, response.status_code)
self.log_request_fail(method, url, body, duration, response.status_code, raw_data)
self._raise_error(response.status_code, raw_data)
self.log_request_success(method, url, response.request.path_url, body, response.status_code, raw_data, duration)
+1 -1
View File
@@ -102,7 +102,7 @@ class Urllib3HttpConnection(Connection):
raise ConnectionError('N/A', str(e), e)
if not (200 <= response.status < 300) and response.status not in ignore:
self.log_request_fail(method, url, body, duration, response.status)
self.log_request_fail(method, url, body, duration, response.status, raw_data)
self._raise_error(response.status, raw_data)
self.log_request_success(method, full_url, url, body, response.status,