Как просмотреть логи DEBUG графена-джанго - PullRequest
0 голосов
/ 09 октября 2018

У меня проблемы с просмотром журналов уровня DEBUG с Графеном и Джанго.Я установил следующее в settings.py:

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'handlers': {
        'console': {
            'class': 'logging.StreamHandler',
        },
    },
    'loggers': {
        'django': {
            'handlers': ['console'],
            'level': 'DEBUG'
        },
        'django.request': {
            'handlers': ['console'],
            'level': 'DEBUG'
        },
    },
}

Однако, когда я пытаюсь просмотреть журналы моего сервера Django, все, что я вижу, это:

 ❯❯❯ kubectl logs -f server-6b65f48895-bmp6w server
Operations to perform:
  Apply all migrations: admin, auth, contenttypes, django_celery_beat, django_celery_results, server, sessions, social_django
Running migrations:
  No migrations to apply.
Performing system checks...

System check identified no issues (0 silenced).
October 08, 2018 - 23:59:00
Django version 2.0.6, using settings 'backend.settings'
Starting development server at http://0.0.0.0:8000/
Quit the server with CONTROL-C.
"POST /graphql HTTP/1.1" 400 113
"POST /graphql HTTP/1.1" 400 113
"POST /graphql HTTP/1.1" 400 113
"POST /graphql HTTP/1.1" 400 113
"POST /graphql HTTP/1.1" 400 113
"POST /graphql HTTP/1.1" 400 113
"POST /graphql HTTP/1.1" 400 113
"POST /graphql HTTP/1.1" 400 113
"POST /graphql HTTP/1.1" 400 113
"POST /graphql HTTP/1.1" 400 113

Как можноЯ просматриваю журналы уровня DEBUG, чтобы выяснить, почему мой сервер постоянно обслуживает 400 с?

У меня не установлена ​​переменная среды Django DEBUG.Я пытаюсь отладить производственную проблему.

1 Ответ

0 голосов
/ 09 октября 2018

Некоторое время назад я был напутан с тем же вопросом и пришел к обходному решению:

from promise import is_thenable


class DebugMiddleware(object):
    def on_error(self, error):
        print(error)

    def resolve(self, next, root, info, **args):
        result = next(root, info, **args)
        if is_thenable(result):
            result.catch(self.on_error)

        return result

И скажите graphene, чтобы использовать его в качестве промежуточного программного обеспечения:

GRAPHENE = {
    ...
    'MIDDLEWARE': [
        'path.to.containing.module.DebugMiddleware',
        ...
    ]
}

Здесьвы получаете доступ к ошибке, выдаваемой при разрешении.

Первоначальная проблема (не ведение журнала модуля) может быть вызвана отключенным graphql регистратором, но мои исследования в этом направлении не дали никаких результатов: (

...