2017-07-27 2 views
0

ロギングレベルを簡単に制御できるように、コード全体でロギングを使用しています。あなたはraise Exception()からlogging.error()を好むないとき私は混乱しています一つのことはPython - logging.error()を選択するタイミングはException()ですか?

のですか?私に

logging.error()は本当にraise Exception()が何をするかのように、エラーと遭遇したときにプログラムを停止する必要があるため、意味がありません。

どのようなシナリオでは、logging.error()というエラーメッセージを表示し、プログラムを実行し続けますか?

答えて

1

これは純粋にプロセスの流れに依存しますが、基本的には遭遇したエラー(および方法)に対処したいのか、それをコードのユーザーに伝えたいのか、あるいはその両方に伝えますか?

logging.error()は、通常、エラーが発生したときにログに記録されます。つまり、回復可能なエラーが発生したときにコードを停止して例外を発生させるわけではありません。たとえば、コードがリモートリソースをロードしようとしている可能性があります。エラーをログに記録し、後で例外を発生させずに再試行できます。

btw。 loggingを使用して、logging.exception()を利用して例外(完全、スタックトレース付き)を記録することができます。

3

ロギングは、後で検査するためにイベントのトレースを残すだけですが、プログラムの実行には何も影響しません。例外を発生させることで、上位の発信者にエラー状態を通知し、それを処理させることができます。通常は、両方を一緒に使用します。

関連する問題