Scrapy - Log Level. Разное поведение в AWS Lambda и Local - PullRequest
0 голосов
/ 21 января 2019

Я запускаю Scrapy из скрипта https://doc.scrapy.org/en/latest/topics/practices.html#run-scrapy-from-a-script, чтобы запустить скрипт из AWS Lambda. Я компилирую проект с SAM и все правильно.

Но теперь у меня проблема с параметром LOG_LEVEL.

def handler(event, context):

  settings = {
             'USER_AGENT': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.85 Safari/537.36',
             'LOG_ENABLED': True,
             'LOG_LEVEL': 'ERROR'
          }

  process = CrawlerProcess(settings=settings)
  process.crawl(Spider)
  process.start()

Когда выполнить этот код локально, все правильно, только получить LOG_LEVEL: ERROR, но когда выполнить этот код в AWS Lambda, я получу LOG_LEVEL: DEBUG, и я не знаю, как решить.

1 Ответ

0 голосов
/ 24 января 2019

Исходя из входных данных OP в Проблема Scrapy # 3587 , выясняется, что AWS Lambda устанавливает свои собственные обработчики на корневой логгер, поэтому вам нужно удалить эти обработчики передвы используете Scrapy:

from logging import getLogger

getLogger().handlers = []

def handler(event, context):  # AWS Lambda entry point
    pass  # Your code to call Scrapy.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...