cgitb — CGI 脚本的跟踪管理器

源代码: Lib/cgitb.py

自版本 3.11 起已弃用,将在版本 3.13 中移除: The cgitb 模块已弃用(有关详细信息,请参阅 PEP 594)。


The cgitb 模块为 Python 脚本提供了一个特殊的异常处理程序。(它的名字有点误导。它最初是为 CGI 脚本设计的,用于以 HTML 格式显示详细的跟踪信息。后来它被推广到也以纯文本格式显示此信息。)激活此模块后,如果出现未捕获的异常,将显示详细的格式化报告。该报告包括一个跟踪信息,显示每个级别的源代码摘录,以及当前正在运行的函数的参数和局部变量的值,以帮助您调试问题。可以选择将此信息保存到文件,而不是将其发送到浏览器。

要启用此功能,只需将以下内容添加到 CGI 脚本的顶部

import cgitb
cgitb.enable()

The enable() 函数的选项控制是否在浏览器中显示报告以及是否将报告记录到文件中以供以后分析。

cgitb.enable(display=1, logdir=None, context=5, format='html')

此函数通过设置 sys.excepthook 的值,使 cgitb 模块接管解释器的默认异常处理。

可选参数 display 默认为 1,可以设置为 0 以禁止将跟踪信息发送到浏览器。如果存在参数 logdir,则跟踪信息报告将写入文件。logdir 的值应为这些文件将放置的目录。可选参数 context 是在跟踪信息中显示的源代码当前行周围的上下文行数;默认为 5。如果可选参数 format"html",则输出将格式化为 HTML。任何其他值都强制使用纯文本输出。默认值为 "html"

cgitb.text(info, context=5)

此函数处理由 info 描述的异常(一个包含 sys.exc_info() 结果的 3 元组),将其跟踪信息格式化为文本并以字符串形式返回结果。可选参数 context 是在跟踪信息中显示的源代码当前行周围的上下文行数;默认为 5

cgitb.html(info, context=5)

此函数处理由 info 描述的异常(一个包含 sys.exc_info() 结果的 3 元组),将其跟踪信息格式化为 HTML 并以字符串形式返回结果。可选参数 context 是在跟踪信息中显示的源代码当前行周围的上下文行数;默认为 5

cgitb.handler(info=None)

此函数使用默认设置处理异常(即在浏览器中显示报告,但不记录到文件)。当您捕获异常并希望使用 cgitb 报告它时,可以使用此函数。可选的 info 参数应为一个 3 元组,包含异常类型、异常值和跟踪信息对象,与 sys.exc_info() 返回的元组完全相同。如果未提供 info 参数,则当前异常将从 sys.exc_info() 获取。