Skip to content

Commit

Permalink
fix: Fixing logging of http request and response (#601)
Browse files Browse the repository at this point in the history
* Fixing logging of http request and response

* Feedback

* Fixing bracket

Co-authored-by: childish-sambino <[email protected]>
  • Loading branch information
rakatyal and childish-sambino authored Apr 7, 2022
1 parent b48ac66 commit f14cbca
Showing 1 changed file with 24 additions and 10 deletions.
34 changes: 24 additions & 10 deletions twilio/http/http_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -72,13 +72,7 @@ def request(self, method, url, params=None, data=None, headers=None, auth=None,
'hooks': self.request_hooks
}

if params:
self.logger.info('{method} Request: {url}?{query}'.format(query=urlencode(params), **kwargs))
self.logger.info('PARAMS: {params}'.format(**kwargs))
else:
self.logger.info('{method} Request: {url}'.format(**kwargs))
if data:
self.logger.info('PAYLOAD: {data}'.format(**kwargs))
self._log_request(kwargs)

self.last_response = None
session = self.session or Session()
Expand All @@ -94,10 +88,30 @@ def request(self, method, url, params=None, data=None, headers=None, auth=None,
timeout=timeout if timeout is not None else self.timeout,
)

self.logger.info('{method} Response: {status} {text}'.format(
method=method, status=response.status_code, text=response.text)
)
self._log_response(response)

self.last_response = Response(int(response.status_code), response.text, response.headers)

return self.last_response

def _log_request(self, kwargs):
self.logger.info('-- BEGIN Twilio API Request --')

if kwargs['params']:
self.logger.info('{} Request: {}?{}'.format(kwargs['method'], kwargs['url'], urlencode(kwargs['params'])))
self.logger.info('Query Params: {}'.format(kwargs['params']))
else:
self.logger.info('{} Request: {}'.format(kwargs['method'], kwargs['url']))

if kwargs['headers']:
self.logger.info('Headers:')
for key, value in kwargs['headers'].items():
# Do not log authorization headers
if 'authorization' not in key.lower():
self.logger.info('{} : {}'.format(key, value))

self.logger.info('-- END Twilio API Request --')

def _log_response(self, response):
self.logger.info('Response Status Code: {}'.format(response.status_code))
self.logger.info('Response Headers: {}'.format(response.headers))

0 comments on commit f14cbca

Please sign in to comment.