Reputation: 13435
Django's runserver
command doesn't output a stack trace when I append --traceback --verbosity 2
:
➫ python manage.py runserver --traceback --verbosity 2
Validating models...
0 errors found
July 24, 2013 - 11:45:12
Django version 1.5.1, using settings 'base.settings'
Development server is running at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
[24/Jul/2013 11:45:27] "POST /login/get_associations/ HTTP/1.0" 500 13220
Are there other command line switches or logging configuration I can add to get runserver
to print a stack trace when there is a 500
?
Upvotes: 20
Views: 7522
Reputation: 1882
Agreed that this is convenient, especially for MVVM-centric app development (e.g. Angular/Ember front-end). Also this is helpful when others are testing out the front-end.
As you mentioned, this isn't provided by DEBUG=True
. You can add a stacktrace when running ./manage.py runserver
by adding the following to the settings.py file:
LOGGING = {
'version': 1,
'handlers': {
'console': {
'level': 'DEBUG',
'class': 'logging.StreamHandler',
},
},
'loggers': {
'django.request': {
'handlers': ['console'],
'propagate': True,
'level': 'DEBUG',
},
},
}
This syntax comes from the Django documentation Configuring Logging and can be further modified to increase or decrease the amount of console-logging.
Also note that 5XX responses are raised as ERROR messages and 4XX responses are raised as WARNING messages.
Upvotes: 31