Spider-scrapy日志处理

Scrapy生成的调试信息很是有用,可是一般太啰嗦,你能够在Scrapy项目中的setting.py中设置日志显示等级:python

LOG_LEVEL = 'ERROR'网络

 

日志级别scrapy

Scrapy日志有五种等级,按照范围递增顺序排列以下:(注意《Python网络数据采集》书中这里有错)ide

  • CRITICAL - 严重错误
  • ERROR - 通常错误
  • WARNING - 警告信息
  • INFO - 通常信息
  • DEBUG - 调试信息

若是日志层级设置为ERROR,那么只有CRITICAL和ERROR日志会显示出来。spa

若是日志层级设置为DEBUG,那么全部信息都会显示出来,其它同理。命令行

 

设置log级别调试

能够经过终端选项 -loglevel/-L 或 LOG_LEVEL 来设置log级别。日志

 

记录信息code

下面给出如何使用WARING级别来记录信息对象

  1.  
    from scrapy import log
  2.  
    log.msg( "This is a warning", level=log.WARING)

 

在Spider中添加log

在spider中添加log的推荐方式是使用Spider的 log() 方法。该方法会自动在调用 scrapy.log.start() 时赋值 spider 参数。

其它的参数则直接传递给 msg() 方法

 

scrapy.log模块

scrapy.log.start(logfile=None, loglevel=None, logstdout=None)

启动log功能。该方法必须在记录任何信息以前被调用。不然调用前的信息将会丢失。

参数:

  • logfile(str) - 用于保存log输出的文件路径。若是被忽略,LOG_FILE设置会被启用。若是两个参数都是None(默认值),log会被输出到标准错误流(stderr),通常都直接打印在终端命令行中。
  • loglevel - 记录的最低日志级别,可用的值在上面提到了
  • logstdout(boolean) - 若是设置为True,全部的应用的标准输出(包括标准错误)都将记录,例如,若是程序段中有 "print hello",那么执行到这里时,"hello"也会被记录到日志中。 
scrapy.log.msg(message,level=INFO,spider=None)

记录信息

参数:

  • message(str) - log信息
  • level - 该信息对应的级别
  • spider(spider 对象) - 记录信息的spider。当记录的信息和特定的spider有关联时,该参数必须使用

 

默认状况下日志显示在终端,但也能够经过下面的命令输出到一个独立的文件中:

$scrapy crawl spiderName -s LOG_FILE=spider.log (注意这里等号两边没有空格)

或者上面提到的 start() 中参数指定输出文件位置。


若是目录中没有spider.log 那么运行程序会建立一个新文件,而后把全部的日志都保存到里面。

若是已经存在,会在原文后面追加新的日志内容。

相关文章
相关标签/搜索