DEBUG=False导致500个错误,无法强制将所有内容记录到Django中的控制台
我正在尝试对500错误进行故障排除,因为每当我在Django中设置DEBUG=False时,就会收到一个500错误 我试图设置允许的_HOSTS=['*'] 我尝试将日志设置为调试,并使用循环强制日志记录到控制台。然而,它不起作用,所以很有可能它没有做我认为它应该做的事情 我已从我的设置文件中附加了一个片段: settings.py:DEBUG=False导致500个错误,无法强制将所有内容记录到Django中的控制台,django,logging,Django,Logging,我正在尝试对500错误进行故障排除,因为每当我在Django中设置DEBUG=False时,就会收到一个500错误 我试图设置允许的_HOSTS=['*'] 我尝试将日志设置为调试,并使用循环强制日志记录到控制台。然而,它不起作用,所以很有可能它没有做我认为它应该做的事情 我已从我的设置文件中附加了一个片段: settings.py: DEBUG = False LOGGING = { 'version': 1, 'disable_existing_loggers': Fals
DEBUG = False
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'handlers': {
'console': {
'class': 'logging.StreamHandler',
},
},
'loggers': {
'django': {
'handlers': ['console'],
'level': os.getenv('DJANGO_LOG_LEVEL', 'DEBUG'),
},
},
}
for logger in LOGGING['loggers']:
LOGGING['loggers'][logger]['handlers'] = ['console']
ALLOWED_HOSTS = ['*']
服务器本身需要检查日志文件。原因是,如果django出错,则意味着设置尚未输入文件的.py解释器。这与您可以在服务器本身上看到日志的原因相同。所有这些都写得很清楚 这里有一个尝试添加它,有时它可以帮助
settings.py
MIDDLEWARE = [
'whitenoise.middleware.WhiteNoiseMiddleware', #Добавляем до 'django.middleware.security.SecurityMiddleware',
]
我的问题的解决方案是在settings.py中添加以下命令
DEBUG_PROPAGATE_EXCEPTIONS = True
此处描述:
在我的特定实例中,结果是我得到了一个值错误,该错误通过执行collectstatic修复
python manage.py collectstatic
相关的:
请共享错误消息和相关的回溯。否则,人们会猜测,当
调试为真时(我承认这是一种奇怪的情况),为什么您的项目可能抛出500个错误。我不确定如何获得回溯-您能详细说明一下吗?这是控制台中唯一显示的内容:[26/May/2020 02:48:15]“GET/pets/api/v2/HTTP/1.1”500 27我在浏览器中得到的唯一消息是:如果在项目的settings.py
中DEBUG=True
(从您的描述来看,确实是这样),那么当错误发生时,您应该会看到一个非常详细的错误页面。它将包括精确显示错误发生位置的回溯信息。它还可以让您查看致命错误发生之前执行过程中关键点的局部变量。(内容更漂亮。)@PaulBissex在我上面的例子中,它说‘DEBUG=False’——当‘DEBUG=True’时,它没有给出错误,这就是我的困境。但是,当我将其设置为false并使用开关“DEBUG\u PROPAGATE\u EXCEPTIONS=True”时,它给了我一个很好的堆栈跟踪。