Django logger не регистрирует ошибку в журнальном файле

Привет всем Я столкнулся с проблемами с логированием в django. Он не регистрирует ошибки в моем файле django.log. Ниже приведен код, который я использую в views.py :-

import logging
logger = logging.getLogger(__name__)

class SomeView(CreateAPIView):
    serializer_class = some_class
    queryset = models.model_name.objects

    def create(self, request, *args, **kwargs):
       try:
          some_code
          try:
            some_more_code

          except Exception as e:
            logger.error(e, exc_info=True)
            print(e)
       except:
          pass
       return 1

Это работает, а внутренний блок выводит ошибку. Затем в settings.py

import logging

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'formatters': {
        'verbose': {
            'format': '%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s'
        },
    },
    'handlers': {
        'file': {
            'level': 'ERROR',
            'class': 'logging.FileHandler',
            'filename': 'django.log',
            'formatter': 'verbose'
        },
        'console': {
            'level': 'ERROR',
            'class': 'logging.StreamHandler',
            'formatter': 'verbose'
        },
    },
    'loggers': {
        'django': {
            'handlers': ['file', 'console'],
            'level': 'ERROR',
            'propagate': True,
        },
    },
}

Это создает файл django.log, но я не вижу ошибок в файлах django.log, когда я вызываю ошибку. Кто-нибудь может мне помочь. Я использую pycharm, который показывает, что формат журнала не распознан, если это вам поможет

Есть несколько вещей, которые можно попробовать для устранения этой проблемы:

Убедитесь, что файл django.log имеет правильные разрешения, чтобы в него можно было писать. Вы можете проверить права доступа к файлу, выполнив команду ls -l в терминале.

Убедитесь, что раздел loggers в настройках LOGGING настроен правильно. Логгер 'django' должен иметь "обработчики", установленные на ['file', 'console'] и "уровень", установленный на 'ERROR'.

Убедитесь, что вы правильно используете объект logger в своем представлении. Вы должны вызвать метод error на объекте logger и передать сообщение об ошибке в качестве аргумента, например, так: logger.error(e). Также следует удалить аргумент exc_info=True, так как он не нужен для регистрации ошибок.

Если вы все еще не видите сообщений об ошибках в файле django.log, вы можете попробовать установить параметр 'propagate' на False в логгере 'django'. Это предотвратит распространение сообщений об ошибках в родительский логгер, что может быть причиной фильтрации сообщений.

Если вы используете PyCharm и видите ошибку "формат журнала не распознан", это может быть связано с проблемой форматирования сообщений журнала в настройках LOGGING. Убедитесь, что 'format' в форматере 'verbose' правильно отформатирован в соответствии с документацией по логированию в Python.

Надеюсь, эти рекомендации помогут вам решить проблему.

Привет всем, я думаю, что нашел ответ. проблема была связана с логгером, определенным как logger = logging.getLogger(name). когда я заменил его на logger = logging.getLogger('django'), он начал вести журнал правильно

Вернуться на верх