logging模块
logging模块用于日志的打印记录等,是一个健壮的Python程序所必须具有的模块。
logging模块支持的日志级别主要有五种:DEBUG,INFO,WARNING,ERROR,CRITICAL。优先级为:CRITICAL(50) > ERROR(40) > WARNING(30) > INFO(20) > DEBUG(10) 。 默认的级别为WARNING。Python只会打印比当前级别高的日志,比如我同时刷出了INFO和ERROR级别的日志,如果我的日志级别设置的为WAIRNING,那么只会打印ERROR的日志。
基本使用
引入logging模块,通过logging.级别来输出日志信息
|
1
2
3
4
5
6
7
|
import logging
logging.debug('debug level message')
logging.info('info level message')
logging.warning('warning level message')
logging.error('error level message')
logging.critical('crtical level message')
|
注意:由于默认级别为WARNING,所以上面的例子只会打印WARNING、ERROR、CRITICAL输出的信息
定义日志格式并输出到文件
logging提供了基础的日志模版,可以定义日志的输出格式,以及输出位置
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
import logging
logging.basicConfig(level=logging.DEBUG,
format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',
datefmt='%Y-%m-%d %H:%M:%S',
filename='log.log',
filemode='w')
logging.debug('debug level message')
logging.info('info level message')
logging.warning('warning level message')
logging.error('error level message')
logging.critical('crtical level message')
|
basicConfig支持的参数含义为:
- level:为日志级别,可选参数有logging.DEBUG,logging.INFO,logging.WARNING,logging.ERROR,logging.CRITICAL,分别对应logging的五种日志级别。
- filename: 表示日志文件的名称及路径。
- filemode: 表示日志文件的打开模式,默认不指定的情况下为a,可以改为w。
- datefmt: 对时间进行格式定制,和时间的格式化字符是相同的。
- format: 对日志格式进行定义。
1 %(name)s # Logger的名字 2 %(levelno)s # 数字形式的日志级别 3 %(levelname)s # 文本形式的日志级别 4 %(pathname)s # 调用日志输出函数的模块的完整路径名,可能没有 5 %(filename)s # 调用日志输出函数的模块的文件名 6 %(module)s # 调用日志输出函数的模块名 7 %(funcName)s # 调用日志输出函数的函数名 8 %(lineno)d # 调用日志输出函数的语句所在的代码行 9 %(created)f # 当前时间,用UNIX标准的表示时间的浮 点数表示 10 %(relativeCreated)d # 输出日志信息时的,自Logger创建以 来的毫秒数 11 %(asctime)s # 字符串形式的当前时间。默认格式是 “2003-07-08 16:49:45,896”。逗号后面的是毫秒 12 %(thread)d # 线程ID。可能没有 13 %(threadName)s # 线程名。可能没有 14 %(process)d # 进程ID。可能没有 15 %(message)s # 用户输出的消息