使用根记录器禁用导入模块中的日志

2024-05-23 17:27:29 发布

您现在位置:Python中文网/ 问答频道 /正文

Microsoft的一个presidio-analyzer{a1}日志与根日志记录器:

        logging.info(
            "Returning a total of %d recognizers (predefined + custom)", len(to_return)
        )

这一行将被写数百万次

我在GitHub上创建了一个issue,但与此同时,有没有办法抑制这些日志?我无法按名称访问记录器,也无法将根记录器设置为WARN,因为它会传播到我的所有记录器


Tags: oftoinfolenlogginga1customanalyzer
1条回答
网友
1楼 · 发布于 2024-05-23 17:27:29

修补该特定模块中日志的导入,如下所示:

import microsoft_module

microsoft_module.logging = my_fake_logging

然后,您可以将所有具有所需级别的调用代理到实际的照明模块

注意不要直接修补microsoft_module.logging.info,因为它会影响所有日志记录,因为它使用的是同一个模块

更新:我试图把这个概念搞得一团糟,下面是我的想法:

您可以在特定的函数中修补globals,这样您就可以在特定的范围内更改日志记录

x = 5

def g():
    print(x)

g() 

print(g.__globals__)
g.__globals__['x'] = 9

g()

输出:

5
{'__name__': '__main__', '__file__': '/data/user/0/ru.iiec.pydroid3/files/temp_iiec_codefile.py', '__builtins__': <module 'builtins' (built-in)>, '__warningregistry__': {'version': 0}, 'x': 5, 'g': <function g at 0x755125edc0>}
9

相关问题 更多 >