我正在使用显然使用 Pillow (5.2.0) 的 scrapy (1.5.0)。当我使用 scrapy runspider my_scrapy_script.py
运行脚本时,stdout 会充斥着无用的日志消息,例如:
2018-07-11 14:41:07 [scrapy.utils.log] INFO: Scrapy 1.5.0 started (bot: scrapybot)
2018-07-11 14:41:07 [PIL.Image] DEBUG: Importing BlpImagePlugin
2018-07-11 14:41:07 [PIL.Image] DEBUG: Importing BmpImagePlugin
2018-07-11 14:41:07 [PIL.Image] DEBUG: Importing BufrStubImagePlugin
2018-07-11 14:41:07 [PIL.Image] DEBUG: Importing CurImagePlugin
... many more of the like ...
我尝试通过像这样设置记录器级别来禁用它们:
logger = logging.getLogger('PIL.Image').setLevel(logging.WARNING)
等,它没有帮助,我尝试像这样设置根记录器级别:
logger = logging.getLogger().setLevel(logging.WARNING)
同样没有效果,更高的级别也无济于事
在 scrapy 设置中设置 LOG_LEVEL = logging.WARNING
甚至 LOG_ENABLED = False
也没有效果。
如果我将 LOG_LEVEL
设置为 'INFO'
它会打印
2018-07-11 07:04:42 [scrapy.crawler] INFO: Overridden settings: {'LOG_ENABLED': False, 'LOG_LEVEL': 'INFO', 'SPIDER_LOADER_WARN_ONLY': True}
所以看起来上面提到的洪水是在脚本加载之前产生的
最佳答案
根据文档以附加参数开始:
https://doc.scrapy.org/en/latest/topics/logging.html
--loglevel/-L LEVEL
可以这样
scrapy runspider my_scrapy_script.py --loglevel WARNING
关于python - 无法在 scrapy 脚本中禁用日志消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51284987/