Check when extra in log override default fields
orsinium opened this issue · comments
Gram commented
When passed to logger extra parameters overwrite default logging fields like name
, lineno
or message
, logging raises KeyError exception at runtime. It will be very useful to find out this at static checks stage.
Example:
import logging
logging.warning('msg', extra=dict(name='test'))
This raises next exception:
KeyError: "Attempt to overwrite 'name' in LogRecord"
Gram commented
From python-json-logger:
RESERVED_ATTRS = (
'args', 'asctime', 'created', 'exc_info', 'exc_text', 'filename',
'funcName', 'levelname', 'levelno', 'lineno', 'module',
'msecs', 'message', 'msg', 'name', 'pathname', 'process',
'processName', 'relativeCreated', 'stack_info', 'thread', 'threadName')