from functools import wraps from reprlib import Repr import inspect from flask import request, g from flask_logger_decorator.config import config from flask_logger_decorator.logger import debug __r = Repr() __r.maxarray = __r.maxarray * 10 __r.maxdict = __r.maxdict * 10 __r.maxstring = __r.maxstring * 10 def request_tracing(fn): """ A decorator to tracing request. """ @wraps(fn) def wrapper(*args, **kwargs): tracing_request(fn, *args, **kwargs) return fn(*args, **kwargs) return wrapper def tracing_request(fn, *args, **kwargs): function_args = ' '.join(_get_fn_args(fn, *args, **kwargs)) trace_info = ' '.join(_get_fn_extra_info(fn)) func_msg = 'func_name:{} func_args:{} trace_info:{}'.format( fn.__name__, function_args, trace_info) request_msg = get_request_trace_info()