我为它写了一个简单的脚本和用户argparse。如果用户提供args.verbose
,我可以阅读值--verbose
。
现在我希望根据此标志更改日志配置。
如果args.verbose
为真,我希望看到logger.debug
,如果它是假的,我不想看到它(只有logger.info
和“更多”)。
到目前为止,我没有进行任何记录,除非在文件的顶部:
import logging
logger=logging.getLogger(__name__)
记录应该转到stdout。
答案 0 :(得分:2)
import logging
import sys
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("-v", "--verbose", help="increase output verbosity",
action="store_true")
args = parser.parse_args()
root = logging.getLogger()
root.setLevel(logging.INFO)
if args.verbose:
root.setLevel(logging.DEBUG)
ch = logging.StreamHandler(sys.stdout)
ch.setLevel(logging.DEBUG)
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
ch.setFormatter(formatter)
root.addHandler(ch)
root.info(" Test Info")
root.debug("Test Debug")