我想编写一个自定义装饰器来从端点获取指标,有没有办法让我访问请求以及来自装饰器的响应?如果不是我应该怎么做。
我想查看请求,以便我可以将其记录下来以供稍后分析,然后我需要查看响应以确定它是哪种类型的响应。下面是我的代码。这个想法是我可以访问内部调用的 func 来获取请求。
代码:
def metric(func):
def inner(*args, **kwargs):
print("*" * 30)
start = time.process_time()
func(*args, **kwargs)
latency = start - time.process_time()
print(func)
print("*" * 30)
print(latency)
return inner
@metric
@app.route('/test', methods=['GET', 'POST'])
def printer():
req = request.get_json()
return req
答案 0 :(得分:0)
您是否正在尝试按照以下方式做某事:
from contextlib import contextmanager
from timeit import default_timer
@contextmanager
def ProcessTimer():
start = default_timer()
elapser = lambda: default_timer() - start
yield lambda: elapser()
end = default_timer()
elapser = lambda: end-start
然后像下面这样使用它:
with ProcessTimer() as elapsed:
# . . . . . . Code Under Test . . . . . . . .
# - - - Do something here that you want to time - - -
# . . . . . . . . . . . . . . . . . . . . . .
print(f'Solution: derived in {elapsed():.8f} seconds')