scrapy 日志處理


Scrapy生成的調試信息非常有用,但是通常太啰嗦,你可以在Scrapy項目中的setting.py中設置日志顯示等級:

LOG_LEVEL = 'ERROR'

 

日志級別

Scrapy日志有五種等級,按照范圍遞增順序排列如下:(注意《Python網絡數據采集》書中這里有錯)

  • CRITICAL - 嚴重錯誤
  • ERROR - 一般錯誤
  • WARNING - 警告信息
  • INFO - 一般信息
  • DEBUG - 調試信息

如果日志層級設置為ERROR,那么只有CRITICAL和ERROR日志會顯示出來。

如果日志層級設置為DEBUG,那么所有信息都會顯示出來,其它同理。

 

設置log級別

可以通過終端選項 -loglevel/-L 或 LOG_LEVEL 來設置log級別。

 

記錄信息

下面給出如何使用WARING級別來記錄信息

from scrapy import log
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 那么運行程序會創建一個新文件,然后把所有的日志都保存到里面。

如果已經存在,會在原文后面追加新的日志內容。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM