我在 Django 1.9 项目中设置了日志记录。当我在views.py中使用日志记录时,我会按预期自动在django_request.log中获取日志,但不会在mylog.log中获取日志。我哪里错了?
views.py
import logging
logr = logging.getLogger(__name__)
def sample_view(request):
logr.debug('Ran Sample view')
return HttpResponse("Done!")
settings.py
LOGGING = {
'version': 1,
'disable_existing_loggers': True,
'formatters': {
'standard': {
'format': '%(asctime)s [%(levelname)s] %(name)s: %(message)s'
},
},
'handlers': {
'default': {
'level': 'DEBUG',
'class': 'logging.handlers.RotatingFileHandler',
'filename': 'logs/mylog.log',
'maxBytes': 1024 * 1024 * 5, # 5MB
'backupCount': 5,
'formatter': 'standard'
},
'request_handler': {
'level': 'DEBUG',
'class': 'logging.handlers.RotatingFileHandler',
'filename': 'logs/django_request.log',
'maxBytes': 1024 * 1024 * 5, # 5MB
'backupCount': 5,
'formatter': 'standard'
},
},
'loggers': {
'': {
'handlers': ['default'],
'level': 'DEBUG',
'propagate': True
},
'django.request': {
'handlers': ['request_handler'],
'level': 'DEBUG',
'propagate': False
},
}
}
最佳答案
我发现这个“如果 LOGGING dictConfig 中的disable_existing_loggers键设置为True(这是默认值),那么默认配置中的所有记录器都将被禁用。禁用的记录器与删除的记录器不同;记录器仍然存在,但会默默地丢弃记录到它的任何内容,甚至不会将条目传播到父记录器。”
关于 https://docs.djangoproject.com/en/1.7/topics/logging/#configuring-logging
因此,如果您设置'disable_existing_loggers': False,
您将能够看到所有日志。
关于Django 日志记录在 View 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34461232/