1. ホーム
  2. python

[解決済み] Python Djangoでユニットテストを実行中にログを無効にするにはどうすればよいですか?

2022-04-18 17:48:48

質問

私はDjangoアプリケーションをテストするために、シンプルなユニットテストベースのテストランナーを使っています。

私のアプリケーション自体は、settings.pyで基本的なロガーを使用するように設定されています。

logging.basicConfig(level=logging.DEBUG)

そして、私のアプリケーションのコードで使用しています。

logger = logging.getLogger(__name__)
logger.setLevel(getattr(settings, 'LOG_LEVEL', logging.DEBUG))

しかし、unittestsを実行するとき、私はテスト結果の出力を乱さないようにロギングを無効にしたいと思います。テストを実行するときに、アプリケーション固有のロガーがコンソールに何かを書き出さないように、グローバルな方法でロギングをオフにする簡単な方法はありますか?

解決方法は?

logging.disable(logging.CRITICAL)

と同等かそれ以下のレベルのロギングコールをすべて無効にします。 CRITICAL . ログは次のようにして再び有効にすることができます。

logging.disable(logging.NOTSET)