天天看點

Python爬蟲:scrapy架構log日志設定logging設定配置示例使用或者

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)      

參考

  1. https://docs.scrapy.org/en/latest/topics/settings.html#log-enabled
  2. https://docs.scrapy.org/en/latest/topics/logging.html