cgitb
— Менеджер трассировки для CGI сценариев¶
Модуль 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()
.