Добавление пользовательских тегов форматера в логгер papertrail в django

настройки Страница:

"formatters": {
        "simple": {
            "format": "%(name)s %(asctime)s %(message)s",
            "datefmt": "%Y-%m-%dT%H:%M:%S",
        },
    },

Если я напишу здесь такой код:

"formatters": {
            "simple": {
                "format": "%(name)s %(ip)s %(user)s %(client)s %(asctime)s %(message)s",
                "datefmt": "%Y-%m-%dT%H:%M:%S",
            },
        },

Выдает следующую ошибку:

--- Logging error ---
Traceback (most recent call last):
  File "C:\Program Files\Python10\lib\logging\__init__.py", line 440, in format
    return self._format(record)
  File "C:\Program Files\Python10\lib\logging\__init__.py", line 436, in _format
    return self._fmt % values
KeyError: 'ip'

ip не является одним из доступных параметров: https://docs.python.org/3/library/logging.html#logrecord-attributes

Вы можете предоставить дополнительные ключи для вашего регистратора в представлениях, например, так:

def send_log(self, request, *args, **kwargs):
    extra = {
        "ip": visitor_ip_address(request),
        "username": request.user.username,
        "role": request.user.role,

    }

    logger.info('foo bar', extra=extra)
Вернуться на верх