添加时间戳和用户名以进行记录

时间:2019-03-26 22:22:38

标签: python django logging

我在settings.py中设置了Logging,并且想知道是否可以添加到错误日志行-哪个用户遇到了该错误以及该问题的时间戳。这可能吗?

当前代码

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'handlers': {
        'file': {
            'level': 'DEBUG',
            'class': 'logging.FileHandler',
            'filename': 'debug.log',
        },
    },
    'loggers': {
        'django': {
            'handlers': ['file'],
            'level': 'DEBUG',
            'propagate': True,
        },
    },
}

3 个答案:

答案 0 :(得分:0)

您可以添加格式化程序,并在处理程序中使用它们。 Here是您可以添加的可用默认属性的列表,例如{asctime}的时间戳。要添加用户,您必须在日志记录调用中提供它作为额外的参数,如here所示。

LOGGING = {
    'formatters': {
        'timestamp': {
            'format': '{asctime} {levelname} {message}',
            'style': '{',
        },
    },
    'handlers': {
        'console': {
            'class': 'logging.StreamHandler',
            'formatter': 'timestamp'
        },
    },
    'loggers': {
        'django': {
            'handlers': ['console'],
        },
    },
}

答案 1 :(得分:0)

您可以为日志定义formatter,例如:

"Tell Us More About Your Question us"
//               ^ this "u" is now the first lowercase "u"

要记录遇到错误的用户,您必须在消息中(例如,在您的视图中)传递用户名:

'formatters': {
    'verbose': {
        'format': '{levelname} {asctime} {module} {process:d} {thread:d} {message}',
        'style': '{',
    }
},

答案 2 :(得分:0)

'formatters': {
         'verbose': {
            'format': '%(asctime)s; %(name)s] Message "%(message)s" from %
(pathname)s:%(lineno)d in %(funcName)s',
             'datefmt': "%d/%b/%Y %H:%M:%S"
        },
}

您可以使用上述格式添加新的格式化程序。它应该能够记录行号。但是要登录用户名,除了手动操作外,我别无选择。

相关问题