python - 无法在scrapy脚本中禁用日志记录消息
问题描述
我正在使用scrapy(1.5.0),它显然使用了Pillow(5.2.0)。当我使用scrapy runspider my_scrapy_script.py
标准输出运行脚本时,会被无用的日志消息淹没,例如:
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)
也没有效果,更高的水平也无济于事
设置LOG_LEVEL = logging.WARNING
甚至LOG_ENABLED = False
在scrapy设置中也没有效果。
如果我设置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
推荐阅读
- c - Visual Studio中的Scanf不接受多种字符
- c# - 无法使用 ClickOnce 安装程序部署 System.Net.Http
- html - 如何在不使用 libcurl 的情况下从 localhost 服务器获取 URL
- java - hadoop mapreduce 和 s3 的多个输入文件夹
- javascript - Javascript闭包返回字符串而不是函数
- ruby-on-rails - Rails 裁剪图像的起点、宽度和高度
- macos - 了解 Mac 上 top 的输出
- python - 我正在尝试划分数据框中的某些行和列,并以原始数据框结束,但使用这些新值
- javascript - 使用 JavaScript 从字段中设置 iframe 值
- google-sheets - 如何计算另一个值旁边的值实例