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 должен быть кортежем из 3 элементов, содержащим тип исключения, значение исключения и объект трассировки, точно так же, как кортеж, возвращаемыйsys.exc_info(). Если аргумент info не указан, текущее исключение извлекается изsys.exc_info().
© 2001–2022 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.8/library/cgitb.html