Skip to content
This repository


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Django application for logging server (aka "500") errors

branch: master

This branch is 0 commits ahead and 0 commits behind master

Fetching latest commit…

Cannot retrieve the latest commit at this time


By default Django sends server errors by email which might be not convenient
(you can't setup monitoring) and not always secure (a single bug in a hot place
could overflow mail server). Django_errorlog enables logging of server errors
with standard Python logging.


To install in a Django project:

1.  Include 'django_errorlog' into INSTALLED_APPS

2.  Setup handlers for log channels 'exception' and 'traceback' with usual
    Python [logging handlers][1]. It's a good idea to have a separate file (or
    whatever) for 'traceback' logger because its messages don't fit on a single
    line and hence not easily grep'able.

3.  To disable default mailing of server errors you can leave ADMINS setting
    empty or not setup SMTP_HOST.

The application works automatically: it listents for a signal that Django sends
on all uncaught server errors and then logs short exception values and full
tracebacks into their respective log channels.

There are two utility functions in django_errorlog.utils: log_error and
log_warning. They can be used to manually log exception that you do handle in
your code. They accept exc_info (a triple of (exceptions, value, traceback) as
an argument. If called without arguments they get it from sys.exc_info().

Something went wrong with that request. Please try again.