這裏有幾個非常簡單的答案。首先是簡單地評論basicConfig(...)
聲明。這將不會設置任何記錄器,處理程序或格式化程序,這意味着您的debug(),info()等調用將無效。
另一個簡單的答案是將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)
這不是基本的日誌記錄101嗎? – delnan
@delman:如果它的101那麼請寫一個最佳實踐的答案 – Merlin
我沒有資格這樣做,我只是相當確定這樣做的明顯方法,設置過濾拒絕所有消息,教程。 – delnan