Django docker logging
Я запускаю docker на своем Mac. У меня возникла проблема с моим файлом views.py, и я пытаюсь вывести на рабочий стол Mac docker некоторые сообщения, чтобы попытаться отладить мой код. Я следую
и, похоже, это не работает для меня. Единственное, что выводится в журналы рабочего стола docker, это ошибки, когда они возникают, обычно я получаю только 200 ok от http-запроса. Я использовал оператор print и оператор info, но ни один из них не выводит данные.
------------------------------------ setttings.py ------------------------------------
from pathlib import Path
import os
import logging.config
import json
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True
#Logging Config
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'default': {
'format': '[DJANGO] %(levelname)s %(asctime)s %(module)s '
'%(name)s.%(funcName)s:%(lineno)s: %(message)s'
},
},
'handlers': {
'console': {
'level': 'DEBUG',
'class': 'logging.StreamHandler',
'formatter': 'default',
}
},
'loggers': {
'*': {
'handlers': ['console'],
'level': 'DEBUG',
'propagate': True,
}
},
}
------------------------------------ views.py ------------------------------------
from django.shortcuts import render
from django.http import HttpResponseRedirect
from django.urls import reverse_lazy
from .login_model import LoginForm
import logging
logger = logging.getLogger(__name__)
# Create your views here.
def load_index(request):
logger.info('in index from logger\n')
return render(request, 'index.html')
def login(request):
logger.info('in login from logger\n')
return render(request, 'login.html')
def login_validator(request):
if request.method == 'POST':
print(f"method is post")
logger.info('in login validator')
print("returning in login validator")
return render(request, 'index.html')
Не уверен, почему я не могу видеть журналы в консоли Docker, но в качестве обходного пути stdout.write работает. Удалил все логи из settings.py и добавил следующее в файл views.py.
import sys
sys.stdout.write("Message goes here. \n")
в консоли docker я теперь могу видеть сообщения.