logging模块是一个方便写日志,并且线程安全的模块,这里表示logging记录日志的初步用法
import logging #线程安全的日志模块,不会允许多人同时操作,会自动排队 logging.basicConfig(filename='log.log', format='%(asctime)s-%(name)s-%(levelname)s-%(module)s: %(message)s', datefmt='%Y-%m-%d %H:%M:%S:%p', level=10,)#name在这里表示用户,跟权限有关,module表示模块,message表示传进去的信息,levelname表示错误类型 logging.error('hahaha')#这里的error表示错误级别
执行结果如图
log文件里写进去的东西跟之前一一对应
上面代码里面有个level=10,表示只有级别大于等于10的类型会被写进日志,如图为各个类型的级别
各个的error类型级别为40,大于设定的level,所以会写进去,
如下面代码
import logging logging.basicConfig(filename='log.log', format='%(asctime)s-%(name)s-%(levelname)s-%(module)s: %(message)s', datefmt='%Y-%m-%d %H:%M:%S:%p', level=15,)#level为15,表示只有level大于等于15的才会写进日志 logging.error('a')#这里的error表示错误级别,下面类型 logging.warning('b') logging.info('c') logging.debug('d') logging.log(10,'equal to 10 ')#这里第一个参数是表明level级别,这里是10,下面是20, logging.log(20,'equal to 20 ') #本质上每一种类型都是执行了logging.log(), # 如logging.debug('d'),实际是logging.log(logging.DEBUG,'d),记住这里是大写
执行结果如图
logging模块也可以同时将日志写进多个文件
#创建文件 file_1= logging.FileHandler('11.log','a') #创建格式 fmt1 = logging.Formatter(fmt='%(asctime)s-%(name)s-%(levelname)s-%(module)s: %(message)s') #文件应用格式 file_1.setFormatter(fmt1) file_2=logging.FileHandler('22.log','a') fmt2 = logging.Formatter()#这里没有设置格式 file_2.setFormatter(fmt2) #设置level等级 logger = logging.Logger('s1',level=logging.ERROR)#设置等级,s1为名字 #将两个文件加进来,以后只要满足条件,就同时写进这两个文件 logger.addHandler(file_1) logger.addHandler(file_2) #写日志 logger.critical('2222')
执行之后,只要满足条件就可以同时将日志写进两个文件,执行结果如图