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)