有没有人知道是否有一种方法可以为scrapy的模块设置不同的级别?我想在一个日志文件中记录刮取的项目和发送的请求,但是来自 scrapy.middleware,scrapy.crawler 和 scrapy.utils.log 模块的日志总是相同的,并且不会增加日志文件的值。
我最大的限制是我必须做spider之外的所有事情(在管道中,settings.py文件等)。我有200多个spider,不可能为每个spider添加代码。
Scrapy的文档说可以在高级定制部分修改特定日志的级别,但在www.example.com文件中设置时似乎不起作用settings.py。我猜来自scrapy.middleware和scrapy.crawler的日志是在蜘蛛评估www.example.com文件 * 之前 * 记录settings.py的。
我已经广泛阅读了Scrapy的文档,但是我似乎找不到答案。我不想重新创建我自己的日志,因为Scrapy的一些日志是有用的,比如记录发送的请求和错误的日志。
如果需要的话我可以提供代码摘录。谢谢。
1条答案
按热度按时间ehxuflar1#
你可以创建一个scrapy扩展来控制不同的日志级别,对于那些你不想出现的日志,将它们设置为更高的值。来自
scrapy.utils.log
的前3个日志在scrapy加载它的扩展之前运行,所以这3个日志我不知道除了完全关闭日志并自己实现日志之外还能做什么。下面是扩展的一个示例:
extension.py
个然后在您的
settings.py
中settings.py
上面的例子删除了几乎所有由scrapy生成的日志。如果你只想保留请求日志,那么只需从Extension构造函数的
self.modules
列表中删除scrapy.core.engine
。