Добавление идентификатора трассировки в журналы скрапа - PullRequest
0 голосов
/ 05 декабря 2018

Как и просили здесь: https://github.com/scrapy/scrapy/issues/3466

Я хочу добавить идентификатор трассировки в мои журналы.Этот идентификатор трассировки присутствует в моем запросе.Но я не могу добавить его в свои журналы.Я пробовал несколько решений.

  1. Создание собственного регистратора и добавление идентификатора трассировки с помощью loggerAdapter.

    • Это работает, но только для журналов, которые яперсональный код.Кроме того, существуют ошибки для журналов, которые генерируются engine.py, middleware.py и т. Д.

      Traceback (most recent call last):
      File "/usr/lib/python2.7/logging/__init__.py", line 861, in emit
          msg = self.format(record)
      File "/usr/lib/python2.7/logging/__init__.py", line 734, in format
          return fmt.format(record)
      File "/usr/lib/python2.7/logging/__init__.py", line 469, in format
          s = self._fmt % record.__dict__
      KeyError: 'trace_id'
      Logged from file middlewares.py, line 69
      Traceback (most recent call last):
      File "/usr/lib/python2.7/logging/__init__.py", line 861, in emit
          msg = self.format(record)
      File "/usr/lib/python2.7/logging/__init__.py", line 734, in format
          return fmt.format(record)
      File "/usr/lib/python2.7/logging/__init__.py", line 469, in format
          s = self._fmt % record.__dict__
      KeyError: 'trace_id'
      Logged from file redirect.py, line 41
      Traceback (most recent call last):
      File "/usr/lib/python2.7/logging/__init__.py", line 861, in emit
          msg = self.format(record)
      File "/usr/lib/python2.7/logging/__init__.py", line 734, in format
          return fmt.format(record)
      File "/usr/lib/python2.7/logging/__init__.py", line 469, in format
          s = self._fmt % record.__dict__
      KeyError: 'trace_id'
      Logged from file middlewares.py, line 69
      ^CTraceback (most recent call last):
      File "/usr/lib/python2.7/logging/__init__.py", line 861, in emit
          msg = self.format(record)
      File "/usr/lib/python2.7/logging/__init__.py", line 734, in format
          return fmt.format(record)
      File "/usr/lib/python2.7/logging/__init__.py", line 469, in format
          s = self._fmt % record.__dict__
      KeyError: 'trace_id'
      Logged from file crawler.py, line 258
      Traceback (most recent call last):
      File "/usr/lib/python2.7/logging/__init__.py", line 861, in emit
          msg = self.format(record)
      File "/usr/lib/python2.7/logging/__init__.py", line 734, in format
          return fmt.format(record)
      File "/usr/lib/python2.7/logging/__init__.py", line 469, in format
          s = self._fmt % record.__dict__
      KeyError: 'trace_id'
      Logged from file engine.py, line 295
      
  2. Добавлен идентификатор трассировки в настройке LOG_FORMAT,Но я не могу найти способ передать этот аргумент в scrapy.

    LOG_FORMAT = "%(asctime)s %(levelname)s [%(trace_id)s]: %(message)s"
    

Отключение журналов scrapy не вариант для меня.Любые альтернативные решения или улучшения приветствуются

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...