cgitb – Менеджер трассировок для CGI-скриптов¶cgitb – Traceback manager for CGI scripts
Исходный код: 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 (кортеж из трёх элементов, содержащий результат
sys.exc_info()), форматируя его трассировку как текст и возвращая результат в виде строки. Необязательный аргумент context – это количество строк контекста для отображения вокруг текущей строки исходного кода в трассировке; по умолчанию5.
-
cgitb.html(info, context=5)¶ Эта функция обрабатывает исключение, описываемое info (кортеж из трёх элементов, содержащий результат
sys.exc_info()), форматируя его трассировку как HTML и возвращая результат в виде строки. Необязательный аргумент context – это количество строк контекста для отображения вокруг текущей строки исходного кода в трассировке; по умолчанию5.
-
cgitb.handler(info=None)¶ Эта функция обрабатывает исключение с настройками по умолчанию (то есть показывает отчёт в браузере, но не записывает в файл). Это можно использовать после перехвата исключения, чтобы сообщить о нём с помощью
cgitb. Необязательный аргумент info должен быть кортежем из трёх элементов, содержащим тип исключения, значение исключения и объект трассировки, в точности как кортеж, возвращаемыйsys.exc_info(). Если аргумент info не указан, текущее исключение получается изsys.exc_info().