我开始探索Python 3.5
的{{1}}包。我使用logging
文件
main
另外我插入了
import logging
logging.basicConfig(filename=r'fractal.log', level=logging.DEBUG)
在另一个模块中。 所有我想要的日志条目都在日志文件中正确显示,但除了那些我得到这两个,这不是我的日志代码生成的AFAIK:
import logging
这些日志条目显然没有在DEBUG:requests.packages.urllib3.connectionpool:Starting new HTTP connection (1): ichart.finance.yahoo.com
DEBUG:requests.packages.urllib3.connectionpool:http://ichart.finance.yahoo.com:80 "GET /table.csv?d=11&b=1&e=6&s=%5EIRX&g=d&c=1900&a=0&f=2016&ignore=.csv HTTP/1.1" 200 None
模块中生成。此外,当我将日志记录级别设置为main
时,它们不会显示。
有谁知道为什么我会收到这些日志条目?它们是我代码问题的证据吗?
答案 0 :(得分:4)
这是因为您正在设置根记录器的级别,requests
模块将所有日志记录委派给它。您可以通过明确关闭requests
记录器来解决此问题:
logging.getLogger('requests').setLevel(logging.ERROR)
这会使来自DEBUG
的所有requests
级消息静音。
或者您可以使用自己的记录器而不是依赖根记录器,有多种方法可以执行此操作(例如,可以使用logging.config.dictConfig
),但您可以轻松地手动执行此操作,类似于以下内容:
import logging
logger = logging.getLogger(__name__)
logger.addHandler(logging.FileHandler('fractal.log'))
logger.setLevel(logging.DEBUG)