如何从Python中完全删除任何来自请求模块的日志记录

Fro*_*art 2 python logging python-2.7 python-requests

如何从Python中的请求模块中完全删除任何日志记录?我甚至不需要设置CRITICAL级别.像这样的Smth

import logging
requests_log = logging.getLogger("requests")
requests_log.setLevel(logging.CRITICAL)
Run Code Online (Sandbox Code Playgroud)

但没有任何消息,甚至是重要的.

Mar*_*ers 13

首先,requests 不记录任何东西 ; 只有嵌入式urllib3库才有.该库仅记录消息requestsINFO级别,因此设置日志级别以DEBUG 禁用所有消息:

urllib3_log = logging.getLogger("urllib3")
urllib3_log.setLevel(logging.CRITICAL)
Run Code Online (Sandbox Code Playgroud)

也就是说,如果您不相信将来的版本不会logging.CRITICAL用作日志级别,请urllib3在logger对象上添加一个,并禁用传播:

logging.getLogger("urllib3").propagate = False
Run Code Online (Sandbox Code Playgroud)

现在,urllib3层次结构中的所有日志记录都将定向到NullHandler()实例,并且lastResort设置为requests日志记录将停止.您可以使用它来使层次结构中的任何记录器静音.