Python ---- Python3的Logging模块接收命令行中传入的日志级别

 入门的话还是看官方文档比较好,我主要是记录官网中当时没看懂的那个部分,如下图;

地址:https://docs.python.org/zh-cn/3/howto/logging.html#logging-to-a-file

 

上图中的"--log"部分和通过"level"参数....这些我感觉说的不是很清楚,我按照官网这样写的发现会提示找不到loglevel(也可能是我菜,看不懂,所以记录一下)

报错之后发现是我本地没有配置loglevel这个变量,所以这个"getattr"就会报错嘛,最后我改造了一下,用户可以通过指定日志级别方式在命令行中指定,内容如下:

#!/usr/bin/python3

import logging
import argparse

def _argparse():
    parser = argparse.ArgumentParser(description="logging help!")
    parser.add_argument("--log",action="store")
    args = parser.parse_args()
    return args

def log():
    parser = _argparse()
    loglevel = parser.log
    numeric_level = getattr(logging, loglevel.upper(), None)
    if not isinstance(numeric_level,int):
       raise ValueError('Invalid log level:{0}'.format(loglevel))
    logging.basicConfig(filename="example.log",level=numeric_level)

    logging.debug('debug message')
    logging.info('info message')
    logging.warning('warning message')
    logging.error('error message')
    logging.critical('critical message')

if __name__ == "__main__":
   log()

效果图:

 

posted @ 2020-05-11 15:51  k-free  阅读(498)  评论(0编辑  收藏  举报