我想记录我的应用程序发送的所有请求(requests.get、requests.post等)。为了不使用样板,我决定将函数包装在requests模块中:
import functools
from loguru import logger
import requests
def logging_wrap(foo):
@functools.wraps(foo)
def _(*args, **kwargs):
logger.debug(f"Calling {foo.__name__} with args {args} and kwargs {kwargs}")
return foo(*args, **kwargs)
return _
requests.get = logging_wrap(requests.get)
requests.get("https://google.com")问题是日志引用的是包装器(logger.debug)中的点,而不是requests.get被调用的位置。如何使loguru显示正确的调用位置?
发布于 2020-07-27 16:58:49
多亏了depth参数,您可以使用专门为处理包装函数的情况而设计的opt()方法:
logger.opt(depth=1).debug(f"Calling {foo.__name__} with args {args} and kwargs {kwargs}")https://stackoverflow.com/questions/62915770
复制相似问题