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 那麼運行程序會建立一個新文件,而後把全部的日誌都保存到裏面。

若是已經存在,會在原文後面追加新的日誌內容。

相關文章
相關標籤/搜索