Документация Python неофициальный перевод

20.3. cgitb – Менеджер трассировки для CGI-скриптовcgitb – Traceback manager for CGI scripts

The cgitb module provides a special exception handler for Python scripts. (Its name is a bit misleading. It was originally designed to display extensive traceback information in HTML for CGI scripts. It was later generalized to also display this information in plain text.) After this module is activated, if an uncaught exception occurs, a detailed, formatted report will be displayed. The report includes a traceback showing excerpts of the source code for each level, as well as the values of the arguments and local variables to currently running functions, to help you debug the problem. Optionally, you can save this information to a file instead of sending it to the browser.

Для включения этой возможности добавьте следующее в начало CGI-сценария:

import cgitb
cgitb.enable()

Параметры функции enable() управляют тем, будет ли отчет отображаться в браузере и будет ли отчет записываться в файл для последующего анализа.

cgitb.enable(display=1, logdir=None, context=5, format="html")

Эта функция заставляет модуль cgitb перехватить стандартную обработку исключений интерпретатора, устанавливая значение sys.excepthook.

Необязательный аргумент display по умолчанию равен 1 и может быть установлен в 0 для подавления отправки трассировки в браузер. Если аргумент logdir присутствует, отчеты трассировки записываются в файлы. Значение logdir должно быть каталогом, в который будут помещены эти файлы. Необязательный аргумент context – это количество строк контекста, отображаемых вокруг текущей строки исходного кода в трассировке; по умолчанию равно 5. Если необязательный аргумент format равен "html", вывод форматируется как HTML. Любое другое значение приводит к выводу в виде обычного текста. Значение по умолчанию – "html".

cgitb.handler(info=None)
Эта функция обрабатывает исключение, используя настройки по умолчанию (то есть показывает отчет в браузере, но не записывает в файл). Её можно использовать при перехвате исключения, чтобы сообщить о нём с помощью cgitb. Необязательный аргумент info должен быть тройкой, содержащей тип исключения, значение исключения и объект трассировки – точно так же, как кортеж, возвращаемый sys.exc_info(). Если аргумент info не указан, текущее исключение берётся из sys.exc_info().