0

Python のログ モジュールを使用しようとすると、プログラムを正常にクラッシュさせる代わりに、例外をキャッチしてエラーを出力するようです。

ロギングを初期化するには、次のようにします。

logging.basicConfig(level=logging.DEBUG)

これで、すべての情報と警告メッセージを取得できましたが、これに加えて、エラーが発生すると、それがキャッチされて「エラー」ログ メッセージとして出力されるようです。

ERROR:root:'bool' object is not iterable

これにより、私の側で2つの問題が発生します。

  1. スタック トレースが表示されません。
  2. プログラムは実行を続けます。

ログを有効にしていないかのようにプログラムがスタック トレースでクラッシュするように、この動作を無効にする方法はありますか?

編集

私はアホです。例外をキャッチしていたのはロギングではありませんでした。それは websocket-client モジュールでした。より具体的には、これらの行:

     except Exception, e:
        self._run_with_no_err(self.on_error, e)

def _run_with_no_err(self, callback, *args):
    if callback:
        try:
            callback(self, *args)
        except Exception, e:
            if logger.isEnabledFor(logging.DEBUG):
                logger.error(e)

たまたまログを有効にしたときにこの動作に気づき、2 つが接続されているとは思いませんでした。

4

0 に答える 0