Python-logging模块简单使用
logging模块只要用于日志的打印。模块的源码在:Lib/logging/__init__.py
其中,logging.basicConfig(**kwargs)方法用于进行基本的属性配置,它的参数是可变的,主要有以下参数可以进行配置:
filename:指定创建的文件名;
filemode:指定文件的访问模式,如果未指定,默认为"a";
format:指定打印的格式;
datefmt:指定日期/时间打印格式;
level:指定打印等级;
stream:暂不清楚如何使用。
其中,filemode就是对文件操作的模式,主要有:
文件模式 |
操作 |
r |
以读方式打开 |
rU或U |
以读方式打开,同时提供通用换行符支持 |
w |
以写方式打开(必要时情况) |
a |
以追加模式打开(从EOF开始,必要时创建新文件) |
r+ |
以读写模式打开 |
w+ |
以读写模式打开(参见w) |
a+ |
以读写方式打开(参见a) |
rb |
以二进制读模式打开 |
wb |
以二进制写模式打开(参见w) |
ab |
以二进制追加模式打开(参加a) |
rb+ |
以二进制读写模式打开(参见r+) |
wb+ |
以二进制读写模式打开(参见w+) |
ab+ |
以二进制读写模式打开(参见a+) |
format参数指定打印的格式:
datefmt参数设置日期和时间的打印格式:
level表示打印等级,打印等级是具有优先级的,并且向高优先级兼容,优先级顺序为:DEBUG<INFO<WARNING<ERROR<CRITICAL。例如打印等级设置为DEBUG,则高于DEBUG的等级的打印函数也会执行。
测试代码:
1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 4 import logging 5 6 # 设置logging.basicConfig()方法的参数 7 FORMAT = '%(asctime)s [%(funcName)s: %(lineno)d]: %(message)s' 8 LEVEL = logging.INFO 9 FILENAME = "logfile.log" 10 FILEMODE = "w+" 11 DATEFMT = '%m/%d/%Y %I:%M:%S %p' 12 13 # 配置logging.basicConfig函数 14 logging.basicConfig(filename=FILENAME, filemode=FILEMODE, datefmt=DATEFMT ,level = LEVEL, format=FORMAT) 15 16 def display_func(): 17 # 使用不同的打印等级函数进行打印 18 logging.debug('test debug') 19 logging.info('test info') 20 logging.warning('test warning') 21 logging.error('test error') 22 23 if __name__ == '__main__': 24 display_func()
测试结果:打印信息输出在logfile.log文件中,文件的内容如下: