-
Notifications
You must be signed in to change notification settings - Fork 6
/
README
40 lines (27 loc) · 1.56 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
DISCLAIMER!
As of release 1.3 Django uses standard Python logging for everything, including
request exception. Thus django_errorlog is no longer needed. See Django docs
for [setting up logging handlers][0].
[0]: http://docs.djangoproject.com/en/1.3/topics/logging/
## WHAT'S THIS
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.
## USAGE
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().
[1]: http://docs.python.org/library/logging.html#handlers