blob: 052b82153f4c0c29dc1badb5b77b9cc699ef9cc5 [file] [log] [blame]
Georg Brandl8ec7f652007-08-15 14:28:01 +00001
2:mod:`cgitb` --- Traceback manager for CGI scripts
3==================================================
4
5.. module:: cgitb
6 :synopsis: Configurable traceback handler for CGI scripts.
7.. moduleauthor:: Ka-Ping Yee <ping@lfw.org>
8.. sectionauthor:: Fred L. Drake, Jr. <fdrake@acm.org>
9
10
11.. versionadded:: 2.2
12
13.. index::
14 single: CGI; exceptions
15 single: CGI; tracebacks
16 single: exceptions; in CGI scripts
17 single: tracebacks; in CGI scripts
18
19The :mod:`cgitb` module provides a special exception handler for Python scripts.
20(Its name is a bit misleading. It was originally designed to display extensive
21traceback information in HTML for CGI scripts. It was later generalized to also
22display this information in plain text.) After this module is activated, if an
23uncaught exception occurs, a detailed, formatted report will be displayed. The
24report includes a traceback showing excerpts of the source code for each level,
25as well as the values of the arguments and local variables to currently running
26functions, to help you debug the problem. Optionally, you can save this
27information to a file instead of sending it to the browser.
28
Georg Brandl6b5dbaa2009-02-20 08:22:21 +000029To enable this feature, simply add this to the top of your CGI script::
Georg Brandl8ec7f652007-08-15 14:28:01 +000030
Georg Brandl6b5dbaa2009-02-20 08:22:21 +000031 import cgitb
32 cgitb.enable()
Georg Brandl8ec7f652007-08-15 14:28:01 +000033
34The options to the :func:`enable` function control whether the report is
35displayed in the browser and whether the report is logged to a file for later
36analysis.
37
38
39.. function:: enable([display[, logdir[, context[, format]]]])
40
41 .. index:: single: excepthook() (in module sys)
42
43 This function causes the :mod:`cgitb` module to take over the interpreter's
44 default handling for exceptions by setting the value of :attr:`sys.excepthook`.
45
46 The optional argument *display* defaults to ``1`` and can be set to ``0`` to
47 suppress sending the traceback to the browser. If the argument *logdir* is
48 present, the traceback reports are written to files. The value of *logdir*
49 should be a directory where these files will be placed. The optional argument
50 *context* is the number of lines of context to display around the current line
51 of source code in the traceback; this defaults to ``5``. If the optional
52 argument *format* is ``"html"``, the output is formatted as HTML. Any other
53 value forces plain text output. The default value is ``"html"``.
54
55
56.. function:: handler([info])
57
58 This function handles an exception using the default settings (that is, show a
59 report in the browser, but don't log to a file). This can be used when you've
60 caught an exception and want to report it using :mod:`cgitb`. The optional
61 *info* argument should be a 3-tuple containing an exception type, exception
62 value, and traceback object, exactly like the tuple returned by
63 :func:`sys.exc_info`. If the *info* argument is not supplied, the current
64 exception is obtained from :func:`sys.exc_info`.
65