gpt4 book ai didi

python - 在代码中实现可选的记录器

转载 作者:太空狗 更新时间:2023-10-29 21:18:46 25 4
gpt4 key购买 nike

我想在一个函数中实现一个可选的记录器。像这样的东西:

def foo(arg1, arg2, arg3, logger=None):
logger = logger or (lambda *x: None)

...
self.logger.debug("The connection is lost.")

我希望在记录器存在的情况下进行记录。否则,记录器的调试将不起作用。

基本上实现它的简单方法是将每个调试语句嵌套在一个 if logger block 中,但是当有很多调试语句时看起来很乱。

最佳答案

几个选项:

创建一个虚拟记录器(我的最爱):

logger = logger or logging.getLogger('dummy') #  without configuring dummy before.

创建一个具有一级null效果的虚拟对象:

class DummyObject(object):
def __getattr__(self, name):
return lambda *x: None

logger = logger or DummyObject()

将每个调试语句嵌套在一个 block 中:

if logger:
logger.debug("abc")

关于python - 在代码中实现可选的记录器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13521981/

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