Ведение журнала Django не работает на всех уровнях с допустимой конфигурацией?

#django #logging

#django #ведение журнала

Вопрос:

У меня есть допустимая конфигурация django в моем settings.py , я знаю это, поскольку путь к файлу учитывается для RotatingFileHandler . Моя проблема в том, что журналы ведения журнала.DEBUG не печатаются в файл.

Мои настройки и файл, в котором запускается регистратор, приведены ниже:

 # settings.py
DJANGO_LOG_LEVEL = logging.DEBUG
DEFAULT_LOG_PATH = 'foo/logs/foo.log'

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'formatters': {
        'standard': {
            'format': 'TEST {asctime} {module} {levelname} {message}',
            'style': '{'
        },
    },
    'handlers': {
        'console': {
            'class': 'logging.StreamHandler',
        },
        'default': {
            'level': DJANGO_LOG_LEVEL,
            'class': 'logging.handlers.RotatingFileHandler',
            'filename': DEFAULT_LOG_PATH,
            'formatter': 'standard'
        },
    },
    'loggers': {
        'kapsule': {
            'handlers': ['default'],
            'level': logging.DEBUG,
        },
    },
}

# foo.py
logger = logging.getLogger("foo.monitor")
logger.debug('debug') # nothing
logger.info('info') # printed fine
logger.warning('warning') # printed fine
logger.error('error') # printed fine
logger.critical('critical') # printed fine
  

Почему это происходит?

Ответ №1:

Эта полезная маленькая строка была найдена в совершенно отдельном файле, который отключил ведение журнала на уровне отладки, как только это было удалено, ведение журнала работало так, как ожидалось:

 # bar.py
logging.disable(logging.DEBUG)
  

документацию можно найти здесь. Я надеюсь, что это может спасти кого-то еще от нескольких часов разочарования.