2022-11-22 08:51:09 +00:00
|
|
|
import json
|
|
|
|
|
2017-12-30 12:06:24 +00:00
|
|
|
from logging import getLogger
|
|
|
|
|
|
|
|
logger = getLogger('toot')
|
|
|
|
|
|
|
|
|
2020-05-11 10:46:27 +00:00
|
|
|
def censor_secrets(headers):
|
|
|
|
def _censor(k, v):
|
|
|
|
if k == "Authorization":
|
|
|
|
return (k, "***CENSORED***")
|
|
|
|
return k, v
|
|
|
|
|
|
|
|
return {_censor(k, v) for k, v in headers.items()}
|
|
|
|
|
|
|
|
|
2017-12-30 12:06:24 +00:00
|
|
|
def log_request(request):
|
|
|
|
logger.debug(">>> \033[32m{} {}\033[0m".format(request.method, request.url))
|
|
|
|
|
|
|
|
if request.headers:
|
2020-05-11 10:46:27 +00:00
|
|
|
headers = censor_secrets(request.headers)
|
|
|
|
logger.debug(">>> HEADERS: \033[33m{}\033[0m".format(headers))
|
2017-12-30 12:06:24 +00:00
|
|
|
|
|
|
|
if request.data:
|
|
|
|
logger.debug(">>> DATA: \033[33m{}\033[0m".format(request.data))
|
|
|
|
|
2022-11-22 08:51:09 +00:00
|
|
|
if request.json:
|
|
|
|
logger.debug(">>> JSON: \033[33m{}\033[0m".format(json.dumps(request.json)))
|
|
|
|
|
2017-12-30 12:06:24 +00:00
|
|
|
if request.files:
|
|
|
|
logger.debug(">>> FILES: \033[33m{}\033[0m".format(request.files))
|
|
|
|
|
|
|
|
if request.params:
|
|
|
|
logger.debug(">>> PARAMS: \033[33m{}\033[0m".format(request.params))
|
|
|
|
|
|
|
|
|
|
|
|
def log_response(response):
|
|
|
|
if response.ok:
|
|
|
|
logger.debug("<<< \033[32m{}\033[0m".format(response))
|
2022-11-22 08:51:09 +00:00
|
|
|
logger.debug("<<< \033[33m{}\033[0m".format(response.content.decode()))
|
2017-12-30 12:06:24 +00:00
|
|
|
else:
|
|
|
|
logger.debug("<<< \033[31m{}\033[0m".format(response))
|
2022-11-22 08:51:09 +00:00
|
|
|
logger.debug("<<< \033[31m{}\033[0m".format(response.content.decode()))
|
2018-01-14 14:34:41 +00:00
|
|
|
|
|
|
|
|
|
|
|
def log_debug(*msgs):
|
|
|
|
logger.debug(" ".join(str(m) for m in msgs))
|