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 - количество строк контекстf, отображаемого вокруг текущей строки исходного кода в трейсбэке; по умолчанию используется значение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()
.