是使用Python内置的logging模块。
首先,我们需要导入logging模块:
import logging
然后,我们可以创建一个全局记录器并设置其级别:
logger = logging.getLogger()
logger.setLevel(logging.DEBUG)
这将创建一个名为"root"的全局记录器,并将其级别设置为DEBUG。你可以根据需要将级别设置为其他级别,如INFO、WARNING、ERROR或CRITICAL。
接下来,我们可以创建一个处理程序来处理日志记录。例如,我们可以创建一个将日志记录写入文件的处理程序:
file_handler = logging.FileHandler('log.txt')
file_handler.setLevel(logging.DEBUG)
这将创建一个名为"log.txt"的日志文件,并将其级别设置为DEBUG。你可以根据需要将级别设置为其他级别。
然后,我们可以创建一个格式化器来定义日志记录的格式:
formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
file_handler.setFormatter(formatter)
这将使用指定的格式将日志记录格式化为日期、级别和消息。
最后,我们将处理程序添加到全局记录器中:
logger.addHandler(file_handler)
现在,我们已经设置了全局记录器和处理程序,可以开始记录日志了。例如,我们可以使用以下代码记录一条DEBUG级别的日志:
logger.debug('This is a debug message')
如果我们想从命令行设置日志记录级别,可以使用argparse模块解析命令行参数。首先,我们需要导入argparse模块:
import argparse
然后,我们可以创建一个ArgumentParser对象并添加一个命令行参数来设置日志记录级别:
parser = argparse.ArgumentParser()
parser.add_argument('--log-level', choices=['DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL'], default='INFO', help='Set the log level')
args = parser.parse_args()
这将创建一个名为"log-level"的命令行参数,并将其默认值设置为"INFO"。你可以根据需要将默认值设置为其他级别。
接下来,我们可以根据命令行参数设置全局记录器的级别:
logger.setLevel(args.log_level)
现在,我们可以在命令行中使用"--log-level"参数来设置日志记录级别。例如,我们可以使用以下命令将日志记录级别设置为DEBUG:
python script.py --log-level DEBUG
这是设置全局记录器和从命令行设置日志记录级别的最佳方法。你可以根据需要进行调整和扩展,以满足具体的需求。
领取专属 10元无门槛券
手把手带您无忧上云