Как передать дополнительные аргументы в форматер журнала django - PullRequest
0 голосов
/ 14 ноября 2018

Я пытаюсь сделать следующее:

    # settings.py
    'json': {
        'format': 'Avails: {"levelname": "%(levelname)s", "asctime": "%(asctime)s", "funcName": "%(funcName)s", "filename": "%(filename)s", "lineno": "%(lineno)s", "message": "%(message)s"}',
    },

А в виде:

log.info('this is my message', extra={'user': request.user}

Как мне получить extra информацию в формататоре логов?

1 Ответ

0 голосов
/ 14 ноября 2018

Пользователь в extra может быть добавлен в форматирующий json форматер как

'json': {
    'format': (
        'Avails: {'
            '"levelname": "%(levelname)s",'
            '"asctime": "%(asctime)s",'
            '"funcName": "%(funcName)s",'
            '"filename": "%(filename)s",'
            '"lineno": "%(lineno)s",'
            '"message": "%(message)s",' 
            '"user": "%(user)s"'
        '}',
    )
},

Обратите внимание, что вам нужно передать строковое значение для пользователя вместо объекта пользователя вдополнительные опции.Если это не строковый объект, значение __repr__ или __str__ переданного объекта заменяет соответствующую спецификацию преобразования в строке формата.

log.info('this was your message :D', extra={'user': request.user.pk}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...