ここには、本当に簡単な答えがいくつかあります。basicConfig(...)
1 つ目は、単にステートメントをコメント アウトすることです。これは、ロガー、ハンドラー、またはフォーマッターのいずれも設定しないという効果があります。これは、debug()、info() などの呼び出しが事実上 no-op になることを意味します。
もう 1 つの簡単な答えは、basicConfig()
呼び出しのログ レベルを より高い値に設定することですDEBUG
。CRITICAL + 1
ログメッセージが表示されないようにします。
ただし、このコードを本番環境に移行することについて何か言及したので、おそらくやりたいことは-q
、-v
コマンドラインオプションを提供することです (これが CLI ツールであると仮定します)。私の通常のアプローチは、レベルから始めWARNING
て-q
、フィルタ レベルを上げることで、より静かなロギングに向けて移動することです。逆に、それぞれについて-v
、より詳細なロギングに移行します。まさにそれを行うコードのスニペットを次に示します。
from argparse import ArgumentParser
from logging import basicConfig, CRITICAL, ERROR, WARNING, INFO, DEBUG
parser = ArgumentParser()
parser.add_argument("-v", "--verbose", action="count")
parser.add_argument("-q", "--quiet", action="count")
arguments = parser.parse_args()
raw_log_level = 2 + (arguments.verbose or 0) - (arguments.quiet or 0)
if raw_log_level <= 0:
log_level = CRITICAL
elif raw_log_level == 1:
log_level = ERROR
elif raw_log_level == 2: # default
log_level = WARNING
elif raw_log_level == 3:
log_level = INFO
else:
log_level = DEBUG
basicConfig(level=log_level)