ロギングPythonでのロギングのロギング:stderrを超えてログを解き放つ断片を解き放つ
有名な方法で有益な方法で処理することは、安定したアプリケーションを魅了し、維持するために重要です。例外を明示的にキャッチして処理することは賢明ですが、このプロセスを自動化することが非常に有益であるシナリオがあります。この記事では、多用途のロギングモジュールを介して猛攻撃の例外を記録するための革新的なアプローチを調査します。これにより、開発者は例外処理を一元化し、ノイズの多いSTDERRメッセージを排除し、デバッグのためのより多くのコンテキストを提供できます。グローバルSys.excepthook変数へのハンドラー関数。これは、Pythonインタープリターでの有名な例外を処理する責任があります。分析。追加のコンテキストを追加し、必要に応じて例外をフィルタリングします。 ロギングをインポートします logger = logging.getLogger(__ name__) Handler = Logging.StreamHandler(Stream = sys.stdout) logger.addhandler(ハンドラー) def handle_exception(exc_type、exc_value、exc_traceback): issubclass(exc_type、keyboardinterrupt)の場合: sys .__ excepthook __(exc_type、exc_value、exc_traceback) 戻る logger.error( "Uncaught Exception"、exc_info =(exc_type、exc_value、exc_traceback)))) sys.excepthook = handle_exception #例の使用 __name__ == "__main__"の場合: RuntimeErrorをRaise( "test unhandled")
この例では、contaught runtimeerrorはstdoutストリームへのエラーメッセージとしてログに記録され、簡単にデバッグと分析が可能になります。このアプローチは、ファイルやデータベースなどのさまざまな目的地に例外ログをリダイレクトするために、異なるハンドラーをロガーオブジェクトに追加することでさらに拡張できます。未走行の例外処理のためにロギングを効果的に利用することにより、開発者はデバッグ機能を大幅に強化し、アプリケーションのメンテナンスを合理化できます。
。免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3