【发布时间】:2018-04-25 18:52:26
【问题描述】:
Scrapy 内置记录器:
- scrapy.utils.log
- scrapy.crawler
- scrapy.middleware
- scrapy.core.engine
- scrapy.extensions.logstats
- scrapy.extensions.telnet
- scrapy.core.scraper
- scrapy.statscollectors
非常冗长。
我试图设置与用户蜘蛛日志级别 INFO 不同的日志级别 DEBUG。这样我可以减少“噪音”。
这个辅助函数有时会起作用:
def set_loggers_level(level=logging.DEBUG):
loggers = [
'scrapy.utils.log',
'scrapy.crawler',
'scrapy.middleware',
'scrapy.core.engine',
'scrapy.extensions.logstats',
'scrapy.extensions.telnet',
'scrapy.core.scraper',
'scrapy.statscollectors'
]
for logger_name in loggers:
logger = logging.getLogger(logger_name)
logger.setLevel(level)
for handler in logger.handlers:
handler.setLevel(level)
我从 UserSpider init 中调用它:
class UserSpider(scrapy.Spider):
def __init__(self, *args, **kwargs):
# customize loggers: Some loggers can't be reset a this point
helpers.set_loggers_level()
super(UserSpider, self).__init__(*args, **kwargs)
这种方法有时会奏效,有时则不会。
什么是正确的解决方案?
【问题讨论】: