在日常我们写脚本调试时,对一般功能不复杂的脚本,我们一般用print函数来打印关键变量值,来判断程序是否是正常运行,但如果做教大的项目,用这种方法就显得力不从心,所以这时候我们就要用到功能强大的logging 模块了,再讲例子之前,我们先介绍下logging模块日志级别,以下表列出了logging定义的级别划分:
对于某个级别的日志,只有日志记录器配置可以发布该级别的消息时,才会发布这个消息,例如:如果一个消息级别是CRITICAL,而日子记录器记录的是ERROR,这个消息会发出,因为50>40,反之如果是WARNING,就不会记录日志,因为30<40,说完日志级别,我们来看看,如果记录日志信息,我们看脚本:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
#!/usr/bin/evn python import logging logfile = 'log.txt' logging.basicConfig(filename=logfile, format = "%(levelname)-10s %(asctime)s %(message)s", level=logging.INFO ) logging.info('This test script') #show log.txt f = open('log.txt') print f.read() f.close() ~ |
运行结果:
1 2 3 4 |
INFO 2016-03-16 23:18:15,640 This test script INFO 2016-03-16 23:18:28,632 This test script INFO 2016-03-16 23:19:18,269 This test script INFO 2016-03-16 23:19:33,694 This test script |
basicConfig()函数是用于执行根记录器的基本配置,常用关键字有:
filename:指定日志文件名称
format:用于生成日志的格式
level :指定日志级别。
这三个参数里format格式比较多,例如我们脚本用到的%(asctime)s表示执行日志记录是调用ASCII格式的日期和时间,%(message)s是记录的消息。