Scrapy提供5層logging級别:
1. CRITICAL - 嚴重錯誤
2. ERROR - 一般錯誤
3. WARNING - 警告資訊
4. INFO - 一般資訊
5. DEBUG - 調試資訊
logging設定
通過在setting.py中進行以下設定可以被用來配置logging
以下配置均未預設值
# 是否啟用日志
LOG_ENABLED=True
# 日志使用的編碼
LOG_ENCODING='utf-8'
# 日志檔案(檔案名)
LOG_FILE=None
# 日志格式
LOG_FORMAT='%(asctime)s [%(name)s] %(levelname)s: %(message)s'
# 日志時間格式
LOG_DATEFORMAT='%Y-%m-%d %H:%M:%S'
# 日志級别 CRITICAL, ERROR, WARNING, INFO, DEBUG
LOG_LEVEL='DEBUG'
# 如果等于True,所有的标準輸出(包括錯誤)都會重定向到日志,例如:print('hello')
LOG_STDOUT=False
# 如果等于True,日志僅僅包含根路徑,False顯示日志輸出元件
LOG_SHORT_NAMES=False
配置示例
# setting.py
from datetime import datetime
# 檔案及路徑,log目錄需要先建好
today = datetime.now()
log_file_path = "log/scrapy_{}_{}_{}.log".format(today.year, today.month, today.day)
# 日志輸出
LOG_LEVEL = 'DEBUG'
LOG_FILE = log_file_path
使用
import logging
logger = logging.getLogger(__name__)
logger.warning("This is a warning")
或者
import scrapy
class MySpider(scrapy.Spider):
name = 'myspider'
start_urls = ['https://scrapinghub.com']
def parse(self, response):
self.logger.info('Parse function called on %s', response.url)
參考