Python Logging :: show logger.debug()如果给出“-v”

时间:2015-03-19 07:38:38

标签: python logging

我为它写了一个简单的脚本和用户argparse。如果用户提供args.verbose,我可以阅读值--verbose

现在我希望根据此标志更改日志配置。

如果args.verbose为真,我希望看到logger.debug,如果它是假的,我不想看到它(只有logger.info和“更多”)。

到目前为止,我没有进行任何记录,除非在文件的顶部:

import logging
logger=logging.getLogger(__name__)

记录应该转到stdout。

1 个答案:

答案 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")