在日常我们写脚本调试时,对一般功能不复杂的脚本,我们一般用print函数来打印关键变量值,来判断程序是否是正常运行,但如果做教大的项 目,用这种方法就显得力不从心,所以这时候我们就要用到功能强大的logging 模块了,再讲例子之前,我们先介绍下logging模块日志级别,以下表列出了logging定义的级别划分:

对于某个级别的日志,只有日志记录器配置可以发布该级别的消息时,才会发布这个消息,例如:如果一个消息级别是CRITICAL,而日子记录器记录 的是ERROR,这个消息会发出,因为50>40,反之如果是WARNING,就不会记录日志,因为30<40,说完日志级别,我们来看看, 如果记录日志信息,我们看脚本:

#!/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

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

#!/usr/bin/evn python

 

import logging

 

 

logfile = 'log.txt'

 

lo


gging.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()

~

运行结果:

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

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是记录的消息。