add django request context to requests error logs (#33740)

This commit is contained in:
Benjamin Dauvergne 2019-06-06 10:36:52 +02:00
parent 7aab01c92b
commit c6095a099c
2 changed files with 9 additions and 2 deletions

View File

@ -1146,6 +1146,7 @@ class JsonCellBase(CellBase):
invalidate_cache=invalidate_cache,
log_errors=log_errors,
timeout=data_url_dict.get('timeout', self.timeout),
django_request=context.get('request'),
)
except requests.RequestException as e:
extra_context[data_key + '_status'] = -1
@ -1237,7 +1238,9 @@ class JsonCellBase(CellBase):
headers={'Accept': 'application/json'},
remote_service='auto',
json=content,
without_user=True)
without_user=True,
django_request=request,
)
if json_response.status_code // 100 != 2: # 2xx
logger.error('error POSTing data to URL (%s)', url)

View File

@ -39,6 +39,7 @@ class Requests(RequestsSession):
cache_duration = kwargs.pop('cache_duration', 15)
invalidate_cache = kwargs.pop('invalidate_cache', False)
user = kwargs.pop('user', None)
django_request = kwargs.pop('django_request', None)
without_user = kwargs.pop('without_user', False)
federation_key = kwargs.pop('federation_key', 'auto') # 'auto', 'email', 'nameid'
raise_if_not_cached = kwargs.pop('raise_if_not_cached', False)
@ -123,7 +124,10 @@ class Requests(RequestsSession):
response = super(Requests, self).request(method, url, **kwargs)
if log_errors and (response.status_code // 100 != 2):
logging.error('failed to %s %s (%s)', method, url, response.status_code)
extra = {}
if django_request:
extra['request'] = django_request
logging.error('failed to %s %s (%s)', method, url, response.status_code, extra=extra)
if method == 'GET' and cache_duration and (response.status_code // 100 == 2):
cache.set(cache_key, response.content, cache_duration)