gpt4 book ai didi

python - 如何使用 Python 中传播的方法参数覆盖错误日志记录?

转载 作者:太空宇宙 更新时间:2023-11-03 15:55:09 25 4
gpt4 key购买 nike

我想将触发错误级别日志的方法的参数注入(inject)到日志中。

我看了这个问题,我认为检查库可能是获取方法参数的不错选择:Getting method parameter names in python

import inspect

def add(x,y):
frame = inspect.currentframe()
try:
print(frame.f_locals)
finally:
del frame
return x+y

Running: add(4,5)
Returns: {'frame': , 'y': 5, 'x': 4}

虽然理想情况下我只想调用上面的检查代码来自动将信息添加到错误级别日志中,并且仅当它们被调用时以某种方式覆盖错误日志。

最佳答案

这是一个有趣的问题。基本上你可以:

结果如下所示:

from functools import wraps
import logging
import inspect

# save the old logging.error function
__logging_error = logging.error

@wraps(logging.error)
def error(msg, *args, **kwargs):
__logging_error(msg, *args, **kwargs)
caller = inspect.stack()[1]
caller_frame = caller[0]
__logging_error('args: %s' % caller_frame.f_locals)

# overwrite the default logging.error
logging.error = error

现在是代码:

def add(x, y):
logging.error('this is an error')
return x + y

add(4, 5)

输出:

ERROR:root:this is an error
ERROR:root:args: {'y': 5, 'x': 4}

关于python - 如何使用 Python 中传播的方法参数覆盖错误日志记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40887624/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com