logging模块只要用于日志的打印。模块的源码在:Lib/logging/__init__.py
其中,logging.basicConfig(**kwargs)方法用于进行基本的属性配置,它的参数是可变的,主要有以下参数可以进行配置:
filename:指定创建的文件名;
filemode:指定文件的访问模式;
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文件中,文件的内容如下: