您可以通过首先在 scrapy.utils.log.configure_logging 中禁用 root 句柄然后添加您自己的日志处理程序来将所有 scrapy 日志记录到文件中。
在scrapy项目的settings.py文件中添加如下代码:
import logging
from logging.handlers import RotatingFileHandler
from scrapy.utils.log import configure_logging
LOG_ENABLED = False
# Disable default Scrapy log settings.
configure_logging(install_root_handler=False)
# Define your logging settings.
log_file = '/tmp/logs/CRAWLER_logs.log'
root_logger = logging.getLogger()
root_logger.setLevel(logging.DEBUG)
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
rotating_file_log = RotatingFileHandler(log_file, maxBytes=10485760, backupCount=1)
rotating_file_log.setLevel(logging.DEBUG)
rotating_file_log.setFormatter(formatter)
root_logger.addHandler(rotating_file_log)
我们还根据需要自定义日志级别(DEBUG 到 INFO)和格式化程序。要在你的蜘蛛、管道中添加自定义日志,我们可以像普通的 python 日志一样轻松地做到这一点,如下所示:
内部管道.py
import logging
logger = logging.getLogger()
logger.info('processing item')
希望这可以帮助!