10000 fix: Fixing logging of http request and response (#601) · NathanKuntjoro/twilio-python@f14cbca · GitHub
[go: up one dir, main page]

Skip to content

Commit f14cbca

Browse files
rakatyalchildish-sambino
andauthored
fix: Fixing logging of http request and response (twilio#601)
* Fixing logging of http request and response * Feedback * Fixing bracket Co-authored-by: childish-sambino <sharrison@twilio.com>
1 parent b48ac66 commit f14cbca

File tree

1 file changed

+24
-10
lines changed

1 file changed

+24
-10
lines changed

twilio/http/http_client.py

Lines changed: 24 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -72,13 +72,7 @@ def request(self, method, url, params=None, data=None, headers=None, auth=None,
7272
'hooks': self.request_hooks
7373
}
7474

75-
if params:
76-
self.logger.info('{method} Request: {url}?{query}'.format(query=urlencode(params), **kwargs))
77-
self.logger.info('PARAMS: {params}'.format(**kwargs))
78-
else:
79-
self.logger.info('{method} Request: {url}'.format(**kwargs))
80-
if data:
81-
self.logger.info('PAYLOAD: {data}'.format(**kwargs))
75+
self._log_request(kwargs)
8276

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

97-
self.logger.info('{method} Response: {status} {text}'.format(
98-
method=method, status=response.status_code, text=response.text)
99-
)
91+
self._log_response(response)
10092

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

10395
return self.last_response
96+
97+
def _log_request(self, kwargs):
98+
self.logger.info('-- BEGIN Twilio API Request --')
99+
100+
if kwargs['params']:
101+
self.logger.info('{} Request: {}?{}'.format(kwargs['method'], kwargs['url'], urlencode(kwargs['params'])))
102+
self.logger.info('Query Params: {}'.format(kwargs['params']))
103+
else:
104+
self.logger.info('{} Request: {}'.format(kwargs['method'], kwargs['url']))
105+
106+
if kwargs['headers']:
107+
self.logger.info('Headers:')
108+
for key, value in kwargs['headers'].items():
109+
# Do not log authorization headers
110+
if 'authorization' not in key.lower():
111+
self.logger.info('{} : {}'.format(key, value))
112+
113+
self.logger.info('-- END Twilio API Request --')
114+
115+
def _log_response(self, response):
116+
self.logger.info('Response Status Code: {}'.format(response.status_code))
117+
self.logger.info('Response Headers: {}'.format(response.headers))

0 commit comments

Comments
 (0)
0