Django创建了日志文件,但没有写入它

时间:2017-06-16 07:08:57

标签: django logging

我试图通过提供以下设置来使用Django记录器:

LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'filters': {
    'require_debug_false': {
        '()': 'django.utils.log.RequireDebugFalse',
    },
    'require_debug_true': {
        '()': 'django.utils.log.RequireDebugTrue',
    },
},
'formatters': {
    'simple': {
        'format': '[%(asctime)s] %(levelname)s %(message)s',
        'datefmt': '%Y-%m-%d %H:%M:%S'
    },
},
'handlers': {
    'logfile': {
        'level': 'INFO',
        'filters': ['require_debug_false','require_debug_true'],
        'class': 'logging.FileHandler',
        'filename': '/tmp/django-log.log',
        'formatter': 'simple'
    },
},
'loggers': {
    'user_activity': {
        'handlers': ['logfile',]
    },
}

}

然后在视图中使用它,如下所示:

user_logger = logging.getLogger('user_activity')
...
user_logger.info("opened page")

尽管Django创建了文件django-log.log,但它并没有写入它。 我的设置有问题吗?

由于

2 个答案:

答案 0 :(得分:1)

在处理程序过滤器中,您可以使用django.utils.log.RequireDebugFalsedjango.utils.log.RequireDebugTrue,而不是两者。它们是相互排斥的。

答案 1 :(得分:0)

使用logging.getLogger(name)创建日志对象时,需要设置日志记录级别:

在写入记录器之前尝试此操作:

user_logger.setLevel(logging.INFO)