Python 如何向django日志格式化程序传递额外参数

Python 如何向django日志格式化程序传递额外参数,python,django,logging,Python,Django,Logging,我正在努力做到以下几点: # settings.py 'json': { 'format': 'Avails: {"levelname": "%(levelname)s", "asctime": "%(asctime)s", "funcName": "%(funcName)s", "filename": "%(filename)s", "lineno": "%(lineno)s", "message": "%(message)s"}', }, 并且认为:

我正在努力做到以下几点:

    # 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
信息?

可以将
extra
中的用户作为

'json': {
    'format': (
        'Avails: {'
            '"levelname": "%(levelname)s",'
            '"asctime": "%(asctime)s",'
            '"funcName": "%(funcName)s",'
            '"filename": "%(filename)s",'
            '"lineno": "%(lineno)s",'
            '"message": "%(message)s",' 
            '"user": "%(user)s"'
        '}',
    )
},
请注意您需要在额外选项中为用户而不是用户对象传递字符串值。如果该对象不是字符串对象,则传递的对象的
\uuuuu repr\uuuuu
\uuuu str\uuuu
值将替换格式字符串中的相应转换规范

log.info('this was your message :D', extra={'user': request.user.pk}