如何禁用请求库中的日志消息?

默认情况下,Requests python库按照以下方式将日志消息写入控制台:


Starting new HTTP connection (1): example.com

http://example.com:80 "GET / HTTP/1.1" 200 606

我通常对这些消息不感兴趣,因此想禁用它们。使这些消息静音或降低请求的冗长程度的最佳方法是什么?


猛跑小猪
浏览 449回答 3
3回答

青春有我

我发现了如何配置请求的日志记录级别,这是通过标准的日志记录模块完成的。我决定将其配置为不记录消息,除非它们至少是警告:import logginglogging.getLogger("requests").setLevel(logging.WARNING)如果您也希望将此设置应用于urllib3库(通常由请求使用),请添加以下内容:logging.getLogger("urllib3").setLevel(logging.WARNING)

繁星coding

如果您是来这里寻找修改任何(可能是深度嵌套的)模块的日志记录的方法,请使用它logging.Logger.manager.loggerDict来获取所有记录器对象的字典。然后可以将返回的名称用作以下参数logging.getLogger:import requestsimport loggingfor key in logging.Logger.manager.loggerDict:    print(key)# requests.packages.urllib3.connectionpool# requests.packages.urllib3.util# requests.packages# requests.packages.urllib3# requests.packages.urllib3.util.retry# PYREADLINE# requests# requests.packages.urllib3.poolmanagerlogging.getLogger('requests').setLevel(logging.CRITICAL)# Could also use the dictionary directly:# logging.Logger.manager.loggerDict['requests'].setLevel(logging.CRITICAL)请注意每个用户136036中的注释,此方法仅显示运行上述代码片段时存在的记录器。例如,如果某个模块在实例化一个类时创建了一个新的记录器,则必须在创建该类之后放置此代码段以打印其名称。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python