Вход в Django пуст - PullRequest
       7

Вход в Django пуст

0 голосов
/ 30 октября 2019

У меня проблема, что на самом деле произошло после того, как я добавил форматер в конфигурацию LOGGING? Файл журнала пуст.

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'formatters': {
        'verbose': {
            'format': '{asctime} [{module}]:: {message}',
            'style': '{',
        },
        'simple': {
            'format': '{levelname} {message}',
            'style': '{',
        },
    },
    'handlers': {
        'console':{
            'level': 'INFO',
            'class': 'logging.StreamHandler',
            'formatter': 'verbose'
        },
        'file.DEBUG': {
            'level': 'DEBUG',
            'class': 'logging.handlers.RotatingFileHandler',
            'filename': 'logs/debug.log',
            'maxBytes' : 1024*1024*10,
            'backupCount': 10,
            'formatter':'verbose'
        },
        'file.INFO': {
            'level': 'INFO',
            'class': 'logging.handlers.RotatingFileHandler',
            'filename': 'logs/info.log',
            'maxBytes' : 1024*1024*10,
            'formatter':'verbose'
        },
        'file.ERROR': {
            'level': 'INFO',
            'class': 'logging.handlers.RotatingFileHandler',
            'filename': 'logs/error.log',
            'maxBytes' : 1024*1024*10,
            'backupCount': 10,
            'formatter':'verbose'
        },
    },
    'loggers': {
        'django.request': {
            'handlers': ['file.DEBUG'],
            'level': 'DEBUG',
            'propagate': True,
        },
        'django': {
            'handlers': ['file.INFO'],
            'level': 'INFO',
            'propagate': True,
        },
        'django': {
            'handlers': ['file.ERROR'],
            'level': 'ERROR',
            'propagate': True,
        },
    },
}

Теперь все предполагаемые отладочные файлы пусты, кроме файла ошибок, который я тестировал на представлении с этим кодом

import logging
logger = logging.getLogger('django')

logger.info('tests')
logger.error('tests')
logger.debug('tests')
logger.debug('tests')
logger.error('tests')
logger.info('tests')

Только ошибкавходя в файл, почему это происходит? Я использую новую версию django, 2.2

Обновление Не знаю, что я только что сделал, но теперь это работает. Это моя новая настройка LOGGING

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'formatters': {
            'verbose': {
                'format': '{levelname} {asctime} [{module}]:: {message}',
                'style': '{',
            },
            'simple': {
                'format': '{levelname} {message}',
                'style': '{',
            },
        },
    'handlers': {
        'file_debug': {
            'level': 'DEBUG', 
            'class': 'logging.FileHandler',
            'filename': 'logs/debug.log',
            'formatter':'verbose'
        },
        'file_error': {
            'level': 'ERROR',
            'class': 'logging.FileHandler',
            'filename': 'logs/error.log',
            'formatter':'verbose'
        },
        'file_info': {
            'level': 'INFO',
            'class': 'logging.FileHandler',
            'filename': 'logs/info.log',
            'formatter':'verbose'
        },
    },
    'loggers': {
        'django.server': {
            'handlers': ['file_debug'], 
            'level': 'DEBUG',
            'propagate': True, 
        },
        'django': {
            'handlers': ['file_error'], 
            'level': 'ERROR',
            'propagate': True, 
        },
        'django': {
            'handlers': ['file_info'], 
            'level': 'INFO',
            'propagate': True, 
        },
    },
}

1 Ответ

0 голосов
/ 30 октября 2019

Поскольку вы не настроили LOGGING. В ваших настройках у вас есть две записи для django, и django пишет журналы на основе последней записи. Вместо этого вы должны поместить конфигурацию так:

'loggers': {
        'django.request': {
            'handlers': ['file.DEBUG'],
            'level': 'DEBUG',
            'propagate': True,
        },
        'django': {
            'handlers': ['file.INFO', 'file.ERROR'],  # <-- Here
            'level': 'INFO',
            'propagate': True,
        }
}

Пожалуйста, посмотрите последний пример examples section документации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...