cgitb
— Менеджер трассировок для CGI-скриптов¶
Исходный код: Lib/cgitb.py.
Модуль cgitb
предоставляет специальный обработчик исключений для сценариев Python. (Его название немного вводит в заблуждение. Изначально он был разработан для отображения обширной информации об обратном ходе в HTML для CGI-сценариев. Позже он был обобщен для отображения этой информации в обычном тексте.) После активации этого модуля при возникновении не пойманного исключения будет выведен подробный, отформатированный отчет. Отчет содержит трассировку, показывающую выдержки из исходного кода для каждого уровня, а также значения аргументов и локальных переменных для текущих запущенных функций, что поможет вам отладить проблему. По желанию вы можете сохранить эту информацию в файл вместо того, чтобы отправлять ее в браузер.
Чтобы включить эту функцию, просто добавьте следующее в начало вашего 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.
text
(info, context=5)¶ Эта функция обрабатывает исключение, описанное info (3-кортеж, содержащий результат
sys.exc_info()
), форматируя его трассировку в виде текста и возвращая результат в виде строки. Необязательный аргумент context - это количество строк контекста для отображения вокруг текущей строки исходного кода в трассировке; по умолчанию это значение равно5
.
-
cgitb.
html
(info, context=5)¶ Эта функция обрабатывает исключение, описанное info (3-кортеж, содержащий результат
sys.exc_info()
), форматируя его трассировку в виде HTML и возвращая результат в виде строки. Необязательный аргумент context - это количество строк контекста для отображения вокруг текущей строки исходного кода в трассировке; по умолчанию это значение равно5
.
-
cgitb.
handler
(info=None)¶ Эта функция обрабатывает исключение, используя настройки по умолчанию (то есть показывает отчет в браузере, но не записывает в файл). Это можно использовать, когда вы поймали исключение и хотите сообщить о нем, используя
cgitb
. Необязательный аргумент info должен быть кортежем, содержащим тип исключения, значение исключения и объект трассировки, точно таким же, как кортеж, возвращаемыйsys.exc_info()
. Если аргумент info не указан, текущее исключение будет получено изsys.exc_info()
.