Журнал регистрации в django ничего не выводит

У меня были проблемы с операторами печати и Django, и я увидел здесь, что лучше делать логирование. Но я не уверен, что делаю неправильно. Иногда он записывает в консоль, а иногда нет для одной и той же страницы, и я не могу заставить его записать что-нибудь в моем методе post.

Я пробовал делать logger = logging.getLogger("mylogger") над всеми представлениями класса, пробовал добавлять эту строку в каждый отдельный метод и пробовал делать это только в 1 методе за раз. Есть мысли?

Settings.py Настройки регистратора

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'filters': {
        'require_debug_true': {
            '()': 'django.utils.log.RequireDebugTrue',
        },
    },
    'handlers': {
        'console': {
            'class': 'logging.StreamHandler',
            'filters': ['require_debug_true'],
        },
    },
    'loggers': {
        'mylogger': {
            'handlers': ['console'],
            'level': os.getenv('DJANGO_LOG_LEVEL', 'INFO'),
            'propagate': True,
        },
    },
}

Views.py

class CreateOrderView(View):
    def get(self, request,):
        logger = logging.getLogger("mylogger")
        logger.info("TEST")
        # this should be removed once user_ids are implemented through login system and session creation
        request.session["user_id"] = 1
        # should be set to session.get("user_id") probably in the future
        user_id = request.session.get("user_id")
        trade_form = CreateTradeForm()
        order_form = CreateOrderForm()

        context = {}
        context["user_id"] = user_id
        context["order_form"] = order_form
        context["trade_form"] = trade_form
        return render(request, "trading_log/add-order.html", context)

    def post(self, request):
        trade_form = CreateTradeView(request.POST)
        order_form = CreateOrderForm(request.POST)
        trade = trade_form.save(commit=False)
        order = order_form.save(commit=False)

        logger = logging.getLogger("mylogger")
        logger.info("TEST")
        # logger.info("TRADE", trade)
        # logger.info("ORDER", order)

        return HttpResponseRedirect(reverse("add-order-page"))

Если вам нужны какие-либо другие файлы, пожалуйста, дайте мне знать. Я не думаю, что я сделал что-то, чтобы логирование работало.

Я вижу, что вы используете фильтр RequireDebugTrue, что означает, что вы получите журналы, только если DEBUG установлен на True в вашем файле настроек (который вы не показываете в своем сообщении).

Дополнительно, вам не нужно устанавливать переменную logger в каждом отдельном методе. Вполне достаточно объявить ее один раз в модуле глобально.

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