首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何禁用请求库中的日志消息?

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

Stack Overflow用户
提问于 2012-06-14 16:52:13
回答 10查看 162.4K关注 0票数 407

默认情况下,Requests python库将日志消息写入控制台,如下所示:

代码语言:javascript
复制
Starting new HTTP connection (1): example.com
http://example.com:80 "GET / HTTP/1.1" 200 606

我通常对这些消息不感兴趣,并想禁用它们。让这些消息静默或减少请求冗长的最好方法是什么?

EN

回答 10

Stack Overflow用户

发布于 2014-02-12 18:55:26

代码语言:javascript
复制
import logging
urllib3_logger = logging.getLogger('urllib3')
urllib3_logger.setLevel(logging.CRITICAL)

这样,来自urllib3的所有level=INFO消息都不会出现在日志文件中。

因此,您可以继续使用日志messages...just的level=INFO,为您正在使用的库修改此are。

票数 29
EN

Stack Overflow用户

发布于 2016-02-02 03:53:00

对于使用logging.config.dictConfig的任何人,您可以更改字典中的请求库日志级别,如下所示:

代码语言:javascript
复制
'loggers': {
    '': {
        'handlers': ['file'],
        'level': level,
        'propagate': False
    },
    'requests.packages.urllib3': {
        'handlers': ['file'],
        'level': logging.WARNING
    }
}
票数 17
EN

Stack Overflow用户

发布于 2013-04-17 01:08:46

在遇到与您类似的问题后,让我复制/粘贴我在一两周前写的文档部分:

代码语言:javascript
复制
import requests
import logging

# these two lines enable debugging at httplib level (requests->urllib3->httplib)
# you will see the REQUEST, including HEADERS and DATA, and RESPONSE with HEADERS but without DATA.
# the only thing missing will be the response.body which is not logged.
import httplib
httplib.HTTPConnection.debuglevel = 1

logging.basicConfig() # you need to initialize logging, otherwise you will not see anything from requests
logging.getLogger().setLevel(logging.DEBUG)
requests_log = logging.getLogger("requests.packages.urllib3")
requests_log.setLevel(logging.DEBUG)
requests_log.propagate = True

requests.get('http://httpbin.org/headers')
票数 15
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11029717

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档