禁用所有子日志记录器

5 投票
1 回答
641 浏览
提问于 2025-04-18 08:46

我有一个在运行的Python脚本,它使用了logging这个功能,顶层的记录器设置得很简单:

logging.basicConfig(level=logging.DEBUG)

然后这个脚本还引入了很多其他的内容,这些内容也在使用logging,结果就是我收到了一大堆输出,因为这些其他的脚本也在以DEBUG级别记录信息。我希望只从我的顶层记录器那里获取logging的输出,而不想看到任何来自模块的子记录器的信息。

有没有办法可以关闭所有的子记录器,而不需要一个个手动命名和配置它们呢?

1 个回答

-1

为了更好地管理你的日志,不要把根日志记录器作为默认的日志记录工具。根日志记录器主要用来管理处理器,这样所有的子日志记录器就能继承根日志记录器添加的处理器。你可以把根日志记录器的级别保持在WARNING(这是默认设置)。在所有模块中,使用下面的方式获取一个日志记录器来进行日志记录。

logger = logging.getLogger(__name__)

在你的if __name__ == '__main__'这部分代码中,针对你想要设置不同于WARNING级别的特定日志记录器,调整它们的级别。

撰写回答