Django logger.ошибка не сохраняет запись журнала в отладке.файл журнала

#django #django-logging

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

Вопрос:

Я следовал документации django и попытался использовать logger.error для сохранения ошибки в debug.файл журнала.

 LOGGING = {

'version': 1,
'disable_existing_loggers': False,
'handlers': {
    'file': {
        'level': 'DEBUG',
        'class': 'logging.FileHandler',
        'filename': 'debug.log',
    },
},
'loggers': {
    'django': {
        'handlers': ['file'],
        'level': 'DEBUG',
        'propagate': True,
    },
},
}


import logging
logger = logging.getLogger(__name__)
...... // some code here
    if not data:
        logger.error('Search term is not valid')
  

Предложение «Поисковый запрос недействителен» выводится в консоли, но не сохраняется в debug.файл журнала.

Я не совсем уверен, как работает Django log. Это должно вести себя подобным образом или что-то не так с моим кодом? Кроме того, как сохранить «Поисковый запрос недействителен» в отладке.файл журнала? Большое спасибо!

Ответ №1:

используйте имя, которое вы указали в settings.py , в вашем случае это django

 import logging

# use name that you have given in settings in your case it is  django
logger = logging.getLogger('django')

def my_view(request, arg1, arg):
    ...
    if bad_mojo:
        # Log an error message
        logger.error('Something went wrong!')
  

Ответ №2:

попробуйте указать полный путь к файлу 'filename': '/path/to/django/debug.log'

 LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'handlers': {
        'file': {
            'level': 'DEBUG',
            'class': 'logging.FileHandler',
            'filename': '/path/to/django/debug.log',
        },
    },
    'loggers': {
        'django': {
            'handlers': ['file'],
            'level': 'DEBUG',
            'propagate': True,
        },
    },
}
  

Ссылка:https://docs.djangoproject.com/en/2.1/topics/logging/#examples