mirror of
https://github.com/clearml/clearml-server
synced 2025-02-07 13:33:42 +00:00
Add request logging using the CLEARML_SERVER_DEBUG_REQUESTS env var
This commit is contained in:
parent
78989fea91
commit
242a78a0fe
@ -1,4 +1,5 @@
|
|||||||
from functools import partial
|
from functools import partial
|
||||||
|
from os import getenv
|
||||||
|
|
||||||
from flask import request, Response, redirect
|
from flask import request, Response, redirect
|
||||||
from werkzeug.datastructures import ImmutableMultiDict
|
from werkzeug.datastructures import ImmutableMultiDict
|
||||||
@ -13,8 +14,18 @@ from apiserver.service_repo.errors import PathParsingError
|
|||||||
from apiserver.utilities import json
|
from apiserver.utilities import json
|
||||||
from apiserver.utilities.dicts import nested_set
|
from apiserver.utilities.dicts import nested_set
|
||||||
|
|
||||||
|
|
||||||
log = config.logger(__file__)
|
log = config.logger(__file__)
|
||||||
|
|
||||||
|
log_request_paths = None
|
||||||
|
# noinspection PyBroadException
|
||||||
|
try:
|
||||||
|
debug_request = getenv("CLEARML_SERVER_DEBUG_REQUESTS", "")
|
||||||
|
if debug_request:
|
||||||
|
log_request_paths = [path.split("") for path in debug_request.split(",")]
|
||||||
|
except Exception:
|
||||||
|
log.exception("Failed parsing CLEARML_SERVER_DEBUG_REQUESTS")
|
||||||
|
|
||||||
|
|
||||||
class RequestHandlers:
|
class RequestHandlers:
|
||||||
_request_strip_prefix = config.get("apiserver.request.strip_prefix", None)
|
_request_strip_prefix = config.get("apiserver.request.strip_prefix", None)
|
||||||
@ -33,6 +44,16 @@ class RequestHandlers:
|
|||||||
return f"Content encoding is not supported ({request.content_encoding})", 415
|
return f"Content encoding is not supported ({request.content_encoding})", 415
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
if log_request_paths:
|
||||||
|
try:
|
||||||
|
msg = "\n".join(
|
||||||
|
nested_dict(request)
|
||||||
|
)
|
||||||
|
for path in log_request_paths:
|
||||||
|
log.info()
|
||||||
|
except (KeyError, ValueError, TypeError, AttributeError) as ex:
|
||||||
|
log.error("Failed logging request paths: {}".format(ex))
|
||||||
|
|
||||||
call = self._create_api_call(request)
|
call = self._create_api_call(request)
|
||||||
load_data_callback = partial(self._load_call_data, req=request)
|
load_data_callback = partial(self._load_call_data, req=request)
|
||||||
content, content_type, company = ServiceRepo.handle_call(
|
content, content_type, company = ServiceRepo.handle_call(
|
||||||
@ -202,3 +223,7 @@ class RequestHandlers:
|
|||||||
)
|
)
|
||||||
except Exception as ex:
|
except Exception as ex:
|
||||||
call.set_error_result(msg=ex.args[0] if ex.args else type(ex).__name__)
|
call.set_error_result(msg=ex.args[0] if ex.args else type(ex).__name__)
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
pass
|
Loading…
Reference in New Issue
Block a user