Журнал регистрации в 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 в каждом отдельном методе. Вполне достаточно объявить ее один раз в модуле глобально.