logging模块用于输出日志信息,能够按照不一样日志等级划分反馈给用户,默认以追加形式添加日志信息函数
通常状况下分的五种等级:学习
优先级 | 等级 |
---|---|
1 | debug() |
2 | info() |
3 | warning() |
4 | error() |
5 | critical() |
logging配置信息,实现打印日志的基础配置信息this
参数 | 释义 |
---|---|
filename | 指定日志文件名 |
filemode | 和file函数意义相同,指定日志文件的打开模式,'w'或'a' |
format | 指定输出的格式和内容 |
datefmt | 指定时间格式,同time.strftime() |
level | 设置日志级别,默认为logging.WARNING |
stream | 指定将日志的输出流,如:sys.stderr,sys.stdout或文件,默认sys.stderr,stream和filename同时指定,stream被忽略 |
格式 | 释义 |
---|---|
%(levelno)s | 打印日志级别的数值 |
%(levelname)s | 打印日志级别名称 |
%(pathname)s | 打印当前执行程序的路径,其实就是sys.argv[0] |
%(filename)s | 打印当前执行程序名 |
%(funcName)s | 打印日志的当前函数 |
%(lineno)d | 打印日志的当前行号 |
%(asctime)s | 打印日志的时间 |
%(thread)d | 打印线程ID |
%(threadName)s | 打印线程名称 |
%(process)d | 打印进程ID |
%(message)s | 打印日志信息 |
改变默认等级并输出日志内容线程
# -*- coding:utf8 -*- import logging logging.basicConfig( level = logging.DEBUG, #变动默认等级 filename = "logging.log", #输出日志到文件 format = "[%(lineno)d] %(asctime)s 【%(message)s】 " #定义格式,显示行号、时间、日志信息 ) logging.debug("this is debug") logging.info("this is info") logging.warning("this is warning") logging.error("this is error") logging.critical("this is critical")
logging.log内容debug
[8] 2018-04-05 16:15:34,486 【this is debug】 [9] 2018-04-05 16:15:34,487 【this is info】 [10] 2018-04-05 16:15:34,487 【this is warning】 [11] 2018-04-05 16:15:34,487 【this is error】 [12] 2018-04-05 16:15:34,487 【this is critical】
logging对象日志
参数 | 释义 |
---|---|
logging.getLogger() | 建立对象 |
logger.setLevel() | 定义等级 |
logging.Formatter() | 定义格式 |
logging.FileHandler() | 定义输出文件信息 |
logging.StreamHandler() | 定义屏幕打印信息 |
.setFormatter() | 格式学习 |
.addHandler() | 对象添加学习内容 |
使用示例code
# -*- coding:utf8 -*- import logging logger = logging.getLogger("root") #定义用户建立对象 logger.setLevel(logging.DEBUG) #定义默认等级 format1 = logging.Formatter("[%(lineno)d] %(asctime)s 【%(message)s】 ") #定义输出格式1,用于文件输出 format2 = logging.Formatter("%(asctime)s %(message)s ") #定义输出格式2,用于屏幕输出 a = logging.FileHandler("test.log") #定义文件存储位置和名称 b = logging.StreamHandler() #定义屏幕打印信息 a.setFormatter(format1) #学习文件输出格式 b.setFormatter(format2) #学习屏幕输出格式 logger.addHandler(a) #学习文件存储功能 logger.addHandler(b) #学习屏幕打印功能 logger.debug("this is debug") logger.info("this is info") logger.warning("this is warning") logger.error("this is error") logger.critical("this is critical")
屏幕输出内容orm
2018-04-05 17:49:45,746 this is debug 2018-04-05 17:49:45,746 this is info 2018-04-05 17:49:45,746 this is warning 2018-04-05 17:49:45,746 this is error 2018-04-05 17:49:45,746 this is critical
文件输出内容对象
[33] 2018-04-05 17:49:45,746 【this is debug】 [34] 2018-04-05 17:49:45,746 【this is info】 [35] 2018-04-05 17:49:45,746 【this is warning】 [36] 2018-04-05 17:49:45,746 【this is error】 [37] 2018-04-05 17:49:45,746 【this is critical】