20.3. cgitb — CGIスクリプトのトレースバックマネージャー—Pythonドキュメント

提供:Dev Guides
< PythonPython/docs/2.7/library/cgitb
移動先:案内検索

20.3。 cgitb —CGIスクリプトのトレースバックマネージャー

バージョン2.2の新機能。


cgitb モジュールは、Pythonスクリプト用の特別な例外ハンドラーを提供します。 (その名前は少し誤解を招くです。 もともとは、CGIスクリプトのHTMLで広範なトレースバック情報を表示するように設計されていました。 その後、この情報もプレーンテキストで表示するように一般化されました。)このモジュールをアクティブ化した後、キャッチされない例外が発生すると、詳細なフォーマット済みレポートが表示されます。 レポートには、問題のデバッグに役立つように、各レベルのソースコードの抜粋、および現在実行中の関数の引数とローカル変数の値を示すトレースバックが含まれています。 オプションで、この情報をブラウザに送信する代わりにファイルに保存できます。

この機能を有効にするには、CGIスクリプトの先頭にこれを追加するだけです。

import cgitb
cgitb.enable()

enable()関数のオプションは、レポートをブラウザーに表示するかどうか、およびレポートを後で分析するためにファイルに記録するかどうかを制御します。

cgitb.enable([display[, logdir[, context[, format]]]])

この関数により、 cgitb モジュールは、 sys.excepthook の値を設定することにより、例外に対するインタープリターのデフォルト処理を引き継ぎます。

オプションの引数 display は、デフォルトで1に設定され、0に設定して、ブラウザーへのトレースバックの送信を抑制することができます。 引数 logdir が存在する場合、トレースバックレポートはファイルに書き込まれます。 logdir の値は、これらのファイルが配置されるディレクトリである必要があります。 オプションの引数 context は、トレースバックのソースコードの現在の行の周囲に表示するコンテキストの行数です。 これはデフォルトで5になります。 オプションの引数 format"html"の場合、出力はHTMLとしてフォーマットされます。 その他の値は、プレーンテキスト出力を強制します。 デフォルト値は"html"です。

cgitb.handler([info])
この関数は、デフォルト設定を使用して例外を処理します(つまり、ブラウザーにレポートを表示しますが、ファイルには記録しません)。 これは、例外をキャッチし、 cgitb を使用して報告したい場合に使用できます。 オプションの info 引数は、 sys.exc_info()によって返されるタプルとまったく同じように、例外タイプ、例外値、およびトレースバックオブジェクトを含む3タプルである必要があります。 info 引数が指定されていない場合、現在の例外は sys.exc_info()から取得されます。