[Django]-Django. How to debug a deployed website without turning on Debug setting

2👍

  1. Make sure you have access to the application logs and have properly configured the AdminEmailHandler.
  2. Make sure you’ve property configured ALLOWED_HOSTS. If you haven’t configured it and set DEBUG=False you’ll see a SuspiciousOperation raised.
  3. Double check that you have the incidentals covered. Bad database connection details will quickly cause 500 errors.
  4. Have you tried running it locally with DEBUG=False? That’s often a quick way to find out about some more esoteric errors.

To follow up based on the comments you’ll need to turn DEBUG on in a somewhat live environment. The standard way to do this would be to have a separate staging environment from the live one. Since Heroku is being used you can easily spin up a separate environment and set DEBUG=True there. Then you’ll see the full error pages, fix the error, and deploy to production where DEBUG=False.


Another idea is to setup a third-party exception handling system like Raygun or Bugsnag. Adding this to the production application will give you reports when exceptions are thrown. This is a big upgrade over Django’s default email-on-error behavior.

👤Josh K

Leave a comment