Django не входит в файл - PullRequest
       11

Django не входит в файл

0 голосов
/ 15 ноября 2018

Моя конфигурация логирования выглядит следующим образом:

LOGGING = {
'version': 1,
'disable_existing_loggers': True,
'formatters': {
    'standard': {
        'format': '%(asctime)s %(levelname)s %(name)s %(message)s'
    },
},
'handlers': {
    'default': {
        'level': 'INFO',
        'class': 'logging.handlers.RotatingFileHandler',
        'filename': '/opt/logs/info.log',
        'maxBytes': 1024*1024*5,  # 5 MB
        'backupCount': 5,
        'formatter': 'standard',
    },
    'request_handler': {
            'level': 'INFO',
            'class': 'logging.handlers.RotatingFileHandler',
            'filename': '/opt/logs/request.log',
            'maxBytes': 1024*1024*5,  # 5 MB
            'backupCount': 5,
            'formatter': 'standard',
    },
},
'loggers': {

    ' ': {
        'handlers': ['default'],
        'level': 'INFO',
        'propagate': True
    },
    'django.request': { # Stop SQL debug from logging to main logger
        'handlers': ['request_handler'],
        'level': 'INFO',
        'propagate': False
    },
}
}

На мой взгляд, я пытаюсь записать следующее сообщение:

import logging

logger = logging.getLogger(__name__)

class IPGroupDeleteView(generics.DestroyAPIView):
    queryset = IPGroup.objects.get_queryset()
    serializer_class = IPGroupSerializer

    def destroy(self, request, *args, **kwargs):
        try:
            instance = IPGroup.objects.get(id=kwargs['pk'])
        except IPGroup.DoesNotExist:
            logger.info("instance not found")
            return Response(data={"errors": f"IP Group with id {kwargs['pk']} not found"},
                                   status=status.HTTP_404_NOT_FOUND)

В моем request.log журналы заполняются каждый раз, когда 404 происходит следующим образом:

2018-11-15 12:49:44,616 WARNING django.request Not Found: /api/v1/ip-group/190/delete/
2018-11-15 12:49:57,364 WARNING django.request Not Found: /api/v1/ip-group/190/delete/
2018-11-15 12:54:24,947 WARNING django.request Not Found: /api/v1/ip-group/190/delete/

Однако внутри info.log, где я надеюсь увидеть свое собственное сообщение, ничего не найдено. Что я делаю не так?

1 Ответ

0 голосов
/ 15 ноября 2018

Кажется, что настроенный вами корневой логгер содержит пробел для строкового ключа.Попробуйте пустую строку:

'': {  # Use an empty string
    'handlers': ['default'],
    'level': 'INFO',
    'propagate': True
},

В качестве альтернативы, вы можете явно установить корневой регистратор:

'root': {
    'level': 'INFO',
    'handlers': ['default'],
    'propagate': True
}

Это должно жить на верхнем уровне LOGGING dict (на том же уровнекак loggers, handlers и т. д.).

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