- Notifications
You must be signed in to change notification settings - Fork6
Django application for logging server (aka "500") errors
License
NotificationsYou must be signed in to change notification settings
isagalaev/django_errorlog
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
DISCLAIMER!As of release 1.3 Django uses standard Python logging for everything, includingrequest exception. Thus django_errorlog is no longer needed. See Django docsfor [setting up logging handlers][0].[0]:http://docs.djangoproject.com/en/1.3/topics/logging/## WHAT'S THISBy 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 placecould overflow mail server). Django_errorlog enables logging of server errorswith standard Python logging.## USAGETo install in a Django project:1. Include 'django_errorlog' into INSTALLED_APPS2. 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 sendson all uncaught server errors and then logs short exception values and fulltracebacks into their respective log channels.There are two utility functions in django_errorlog.utils: log_error andlog_warning. They can be used to manually log exception that you do handle inyour code. They accept exc_info (a triple of (exceptions, value, traceback) asan argument. If called without arguments they get it from sys.exc_info().[1]:http://docs.python.org/library/logging.html#handlers