Python如何禁用从父目录导入的模块的日志记录?

2024-06-24 12:04:22 发布

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

我的文件结构如下:

util/
└── utilA.py
src/
└── sublevel
    └── moduleB.py

moduleB中,我使用from util.utilA import *从util导入函数

moduleB内部,我想禁用util中的logging.info(),但以下两行行不通,如果运行moduleB,我仍然可以看到由utilA中的函数生成的日志:

logging.getLogger('util.utilA').propagate = False
logging.getLogger('util.utilA').setLevel(logging.ERROR)

我也试过{}和{},但这两种方法都不起作用

还有一件事让我感到困惑,那就是我对另一个模块pdfminer使用了相同的两行(logging.getLogger('pdfminer')...),它成功地禁用了该模块的日志记录。这对我当地的utilA根本不起作用

有人能帮忙吗?谢谢大家!


Tags: 模块文件函数frompyimportsrclogging
1条回答
网友
1楼 · 发布于 2024-06-24 12:04:22

日志记录基于获取记录器时使用的名称,而不是执行日志记录的模块的名称。特别是,logging.info()使用根记录器。如果要调整给定模块的日志记录,请确保它未使用根记录器,并使用其getLogger("somename")记录器名称

相关问题 更多 >