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().
