带有用户信息的 Django Logger

Alb*_*rto 6 django formatting settings

我只是好奇。是否可以将User信息放入配置formatters中的信息中?LOGGINGsetting.py

现在我只是将该信息放入要记录的消息中,但也许有一种方法可以将其设置在formatters参数中。

这是我LOGGING现在的配置:

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'formatters': {
        'verbose': {
            'format': '%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s'
        },
        'simple': {
            'format': '[%(asctime)s] %(levelname)s [%(funcName)s] %(message)s'
        }
    },
    'handlers': {
        'console': {
            'level': 'DEBUG',
            'class': 'logging.StreamHandler',
            'formatter': 'simple'
        },
        'file': {
            'level': 'DEBUG',
            'class': 'logging.FileHandler',
            'filename': BASE_DIR + '/logs/uca_{:%d_%m_%Y}.log'.format(time.now()),
            'formatter': 'simple'
        }
    },
    'loggers': {
        'ucalog': {
            'handlers': ['file'],
            'level': 'DEBUG',
            'propagate': True
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我在 django 的文档中没有看到任何类似的内容,我认为获取谁做了什么的记录会很有用。

Vai*_*hav 2

尝试这个 :

'format': '[%(asctime)s] %(levelname)s [%(funcName)s] - %(username)s: %(message)s'

logging.basicConfig(format=format)
logger.info(message, extra={'username' : request.user.username})
Run Code Online (Sandbox Code Playgroud)