4

我在我的 Django 1.9 项目中设置了日志记录。我按预期自动获取django_request.log中的日志,但当我在 views.py 中使用日志记录时,不在mylog.log中。我哪里错了?

视图.py

import logging
logr = logging.getLogger(__name__)

def sample_view(request):
   logr.debug('Ran Sample view')
   return HttpResponse("Done!")

设置.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
        },
    }
}
4

1 回答 1

1

我发现了这个“如果 LOGGING dictConfig 中的 disable_existing_loggers 键设置为 True (这是默认设置),那么默认配置中的所有记录器都将被禁用。禁用的记录器与删除的记录器不同;记录器仍然存在,但是将默默地丢弃任何记录到它的内容,甚至不会将条目传播到父记录器。 "

https://docs.djangoproject.com/en/1.7/topics/logging/#configuring-logging

因此,如果您设置'disable_existing_loggers': False,,您将能够看到所有日志。

于 2015-12-25T09:09:16.167 回答