def api_audit_log(response):
"""Saves information about the request in the ``audit_log``
:param response: Server :class:`~flask.Response`
:return: :class:`~flask.Response`
"""
kwargs = {
'module': api.name,
'user': current_user.name,
'email': current_user.email,
'action': _HTTP_METHOD_TO_AUDIT_MAP[request.method.lower()],
'data': addslashes(request.data.decode()),
'url': request.url,
'endpoint': request.endpoint,
'ip': request.remote_addr,
'status': response.status,
'timestamp': datetime.datetime.utcnow().strftime('%Y-%m-%d %H:%M:%S')
}
if not request.view_args and request.method.lower() == 'put':
kwargs['action'] = _HTTP_METHOD_TO_AUDIT_MAP['post']
entry = []
for k, v in kwargs.items():
entry.append('{0!s}="{1!s}"'.format(k, v))
entry = ' '.join(entry)
current_app.audit_log.info('{0!s}'.format(entry))
return response
评论列表
文章目录