这里有几个非常简单的答案。第一种是简单地注释掉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)