Добавление пользовательских тегов форматера в логгер 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)