1 logging
1.1 简单介绍
logging就如它的名字一样,属于日志模块,常用在需要将打印信息输出到文件保存的时候,在自动化测试的脚本中,可以用该模块保存测试的记录数据。
1.2 快速入门
Step1:编辑example.py, 内容如下
import logging logging.basicConfig( filename="example.log", filemode='w', level=logging.DEBUG, datefmt = '%m-%d %H:%M:%S', format = 'TIME %(asctime)s %(levelname)-8s %(message)s', ) logging.debug("This message shold go to the log file") logging.info("So should this") logging.warning("Add this,too") import sys stream = logging.StreamHandler(stream=sys.stdout) stream.setLevel(logging.INFO) formatter = logging.Formatter('TIME %(asctime)s : %(levelname)-8s %(message)s') stream.setFormatter(formatter) logging.getLogger().addHandler(stream) logging.debug("This message shold go to the log file only") logging.info("This will show both the strout and the log file") logging.warning("Add this,too")
Step2:执行Run的快捷键,Alt+Shift+F10
Step3:执行后将会同目录下生成一个example.log文件,文件内容如下
1 TIME 04-20 17:23:10 DEBUG This message shold go to the log file 2 TIME 04-20 17:23:10 INFO So should this 3 TIME 04-20 17:23:10 WARNING Add this,too 4 TIME 04-20 17:23:10 DEBUG This message shold go to the log file only 5 TIME 04-20 17:23:10 INFO This will show both the strout and the log file 6 TIME 04-20 17:23:10 WARNING Add this,too
1.3 代码解释
- 使用logging模块时,需要导入先该模块,导入方法 “import logging”
- logging模块默认是输出到console,并且默认的level是logging.WARNING,低于该级别的信息就不会被输出。
- logging级别的高低如下:logging.DEBUG < logging.INFO < logging.WARNING < logging.ERROR < logging.CRITICAL,可以修改日志的级别,这样低于该级别的信息都不会被输出,修改的方法有两种:
1 logging.basicConfig(level=logging.DEBUG) 2 logging.disable(logging.DEBUG)
logging日志的设置用logging.basicConfig()方法,该函数的参数及其说明如下:
filename |
指定日志文件名 |
||||||||||||||||||||||
filemode |
和file函数相同,指定日志文件的打开模式, ‘w’或‘a’ |
||||||||||||||||||||||
format |
指定输出的格式和内容,format可以输出很多有用信息,如:
|
||||||||||||||||||||||
datefmt |
指定时间格式,同time.strftime() |
||||||||||||||||||||||
level |
设置日志级别,默认为logging.WARNING |
||||||||||||||||||||||
stream |
指定日志的输出流,可以指定输出到sys.stderr, sys.stdout或者文件,默认输出到sys.stderr, 当stream和filename同时指定时,stream被忽略。 |
- logging模块还有很多其他更强大更复杂的功能,以后如果有机会再深入研究,就目前而言,了解上面这些logging模块的知识已经足够使用了。