如何在 Python 中禁用导入模块的日志记录?


应用程序可以使用logging模块配置各种日志处理程序,并将日志消息路由到这些处理程序。这使得设计非常灵活,可以处理各种用例。

调用方必须首先请求一个命名日志记录器才能生成日志消息。程序可以使用名称为各种日志记录器设置各种规则。

然后,程序可以使用此日志记录器以各种日志级别(DEBUG、INFO、ERROR 等)生成纯文本消息,从而能够以与低优先级消息不同的方式处理高优先级消息。以下是一个解释相同的示例:

import logging logging = logging.getLogger("logger") logging.info("Python logging")

该消息在内部转换为 LogRecord 对象,并发送到为此日志记录器指定的 Handler 对象。然后,处理程序将使用 Formatter 将 LogRecord 转换为字符串并发出该字符串。

要禁用 Python 中导入模块的日志记录,我们需要使用 getLogger() 函数。

getLogger() 函数

日志记录器的名称是 getLogger() 方法接受的唯一参数。如果提供了名称,则会生成对具有该名称的日志记录器的引用;否则,它会返回根。对具有相同名称的 getLogger() 的多次调用将引用相同的日志记录器对象。

示例

您可以修改处理这些消息的日志记录器的日志级别。如果级别设置为 WARNING,则请求消息将被删除,但错误和警告将保留。

以下是如何使用 getLogger() 函数禁用日志记录的示例:

import logging logging.getLogger("Python").setLevel(logging.WARNING) logging.getLogger("Coding").setLevel(logging.WARNING)

注意:如果您不想将模块名称作为字符串编写,也可以使用 imported module.name__。如果要更进一步,并且只想记录错误或严重重要消息,则可以选择将 logging.WARNING 分别替换为 logging.ERROR 和 logging.CRITICAL。

更新于: 2022年11月14日

21K+ 浏览量

启动您的 职业生涯

通过完成课程获得认证

开始学习
广告