python - 无法在 scrapy 脚本中禁用日志消息

标签 python scrapy

我正在使用显然使用 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/

相关文章:

python - 在scrapy中修改CSV导出

python - 计算 bool numpy 数组中每行与其他行的相交列数

java - JPy 与 Java 10

python - 重用中间层作为 Keras 中另一个模型的输入

python - 在类实例和类定义上调用类装饰器有什么区别?

python - 规范化空间不足以呈现糟糕的内容

python - Scrapy:下载器/response_count 与 response_received_count

python - 从css节点scrapy中提取文本

regex - 使用 Scrapy 'regex definition'

python - Scrapy & 验证码