按照此处的要求:https://github.com/scrapy/scrapy/issues/3466
我想在我的日志中添加一个跟踪ID。我的请求中存在此跟踪ID。但是我无法将其添加到我的拼凑日志中。我尝试了多种解决方案。
使用loggerAdapter创建我自己的记录器并添加跟踪ID。
这有效,但仅适用于我个人编写的日志。此外,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
在LOG_FORMAT设置中添加了跟踪ID。但我找不到将这种说法传递给scrapy的方法。
LOG_FORMAT = "%(asctime)s %(levelname)s [%(trace_id)s]: %(message)s"
我无法选择关闭日志记录。欢迎任何替代解决方案或改进