Python常用模块之logging模块

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')

  执行之后,只要满足条件就可以同时将日志写进两个文件,执行结果如图

原文地址:https://www.cnblogs.com/xiaobeibei26/p/6431709.html