feat: add debug log for request and response (#19781) -- run dev/reformat

pull/19783/head
hashjang 1 year ago
parent 6d7012ebeb
commit aa5d758f49

@ -68,12 +68,14 @@ def init_app(app: DifyApp):
if logging.getLogger().isEnabledFor(logging.DEBUG): if logging.getLogger().isEnabledFor(logging.DEBUG):
content_type = flask.request.content_type content_type = flask.request.content_type
# only log body if the request is JSON # only log body if the request is JSON
if flask.request.data and 'application/json' in content_type.lower(): if flask.request.data and "application/json" in content_type.lower():
try: try:
json_data = json.loads(flask.request.data) json_data = json.loads(flask.request.data)
formatted_json = json.dumps(json_data, ensure_ascii=False, indent=2) formatted_json = json.dumps(json_data, ensure_ascii=False, indent=2)
logging.debug(f"Received Request {flask.request.method} -> {flask.request.path}, " logging.debug(
f"Request Body:\n{formatted_json}") f"Received Request {flask.request.method} -> {flask.request.path}, "
f"Request Body:\n{formatted_json}"
)
except Exception: except Exception:
logging.exception("Failed to parse JSON request") logging.exception("Failed to parse JSON request")
else: else:
@ -85,19 +87,21 @@ def init_app(app: DifyApp):
# only log if DEBUG is enabled # only log if DEBUG is enabled
if logging.getLogger().isEnabledFor(logging.DEBUG): if logging.getLogger().isEnabledFor(logging.DEBUG):
# only log body if the response is JSON # only log body if the response is JSON
if response.content_type and 'application/json' in response.content_type.lower(): if response.content_type and "application/json" in response.content_type.lower():
try: try:
response_data = response.get_data(as_text=True) response_data = response.get_data(as_text=True)
json_data = json.loads(response_data) json_data = json.loads(response_data)
formatted_json = json.dumps(json_data, ensure_ascii=False, indent=2) formatted_json = json.dumps(json_data, ensure_ascii=False, indent=2)
logging.debug(f"Response {response.status} {response.content_type}, " logging.debug(
f"Response Body:\n{formatted_json}") f"Response {response.status} {response.content_type}, Response Body:\n{formatted_json}"
)
except Exception: except Exception:
logging.exception("Failed to parse JSON response") logging.exception("Failed to parse JSON response")
else: else:
logging.debug(f"Response {response.status} {response.content_type}") logging.debug(f"Response {response.status} {response.content_type}")
return response return response
def get_request_id(): def get_request_id():
if getattr(flask.g, "request_id", None): if getattr(flask.g, "request_id", None):
return flask.g.request_id return flask.g.request_id

Loading…
Cancel
Save