globality-corp / flake8-logging-format

Flake8 extension to validate (lack of) logging format strings

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Check when extra in log override default fields

orsinium opened this issue · comments

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"
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')