cgitb — Controlador de rastreos para scripts CGI

Código fuente: Lib/cgitb.py

Obsoleto desde la versión 3.11, se eliminará en la versión 3.13: El módulo cgitb está obsoleto (ver PEP 594 para más detalles).


El modulo cgitb proporciona un manejador especial de excepciones para scripts de Python. (Su nombre es un poco engañoso. Fue diseñado originalmente para mostrar una amplia información de rastreo en HTML para los scripts CGI). Más tarde se generalizó para mostrar también esta información en texto plano). Después de activar este módulo, si se produce una excepción no capturada, se mostrará un informe formateado y detallado. El informe incluye un rastreo que muestra extractos del código fuente para cada nivel, así como los valores de los argumentos y las variables locales de las funciones que se están ejecutando actualmente, para ayudar a depurar el problema. Opcionalmente, puedes guardar esta información en un archivo en lugar de enviarla al navegador.

Para activar esta función, simplemente añade lo siguiente a la parte superior de tu script CGI:

import cgitb
cgitb.enable()

Las opciones de la función enable() controlan si el informe se muestra en el explorador y si este se registra en un archivo para su posterior análisis.

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

Esta función hace que el módulo cgitb se haga cargo del manejo de excepciones por defecto del intérprete, estableciendo el valor de sys.excepthook.

El argumento opcional display tiene como valor predeterminado 1 y se puede establecer en 0 para suprimir el rastreo al navegador. Si el argumento logdir está presente, los informes de rastreo se escriben en los archivos. El valor de logdir debe ser un directorio donde estos archivos serán colocados. El argumento opcional context es el número de líneas de contexto que se mostrarán alrededor de la línea actual del código fuente en el rastreo; esto tiene como valor predeterminado 5. Si el argumento opcional format es "html", la salida se formatea como HTML. Cualquier otro valor fuerza la salida a un formato de texto plano. El valor predeterminado es "html".

cgitb.text(info, context=5)

Esta función controla la excepción descrita por info (una tupla de 3 que contiene el resultado de sys..exc_info()), dando formato a su rastreo como texto y retornando el resultado como una cadena de caracteres. El argumento opcional context es el número de líneas de contexto que se mostrarán alrededor de la línea actual de código fuente en el rastreo; esto tiene como valor predeterminado 5.

cgitb.html(info, context=5)

Esta función controla la excepción descrita por info (una tupla de 3 que contiene el resultado de sys..exc_info()), dando formato a su rastreo como HTML y retornando el resultado como una cadena de caracteres. El argumento opcional context es el número de líneas de contexto que se mostrarán alrededor de la línea actual de código fuente en el rastreo; esto tiene como valor predeterminado 5.

cgitb.handler(info=None)

Esta función maneja una excepción utilizando la configuración predeterminada (es decir, muestra un informe en el navegador, pero no lo registra en un archivo). Esto puede ser usado cuando has capturado una excepción y quieres reportarla usando cgitb. El argumento opcional info debería ser una tupla de 3 que contenga un tipo de excepción, un valor de excepción y un objeto de rastreo, exactamente como la tupla retornada por sys.exc_info(). Si no se proporciona el argumento info, la excepción actual se obtiene de sys.exc_info().