python--logging模块
Logging模块
import logging
from logging import handlers
---单独日志打印模块
logging.basicConfig(level=logging.DEBUG,#控制台打印的日志级别
filename='my.log',
filemode='a', #每次写日志的模式,w清空以前的日志,a追加
format=
'%(asctime)s - %(pathname)s[line:%(lineno)d] - %(levelname)s: %(message)s'
#日志格式
)
logging.debug('debug级别,最低级别,一般开发人员用来打印一些调试信息')
logging.info('info级别,正常输出信息,一般用来打印一些正常的操作')
logging.warning('waring级别,一般用来打印警信息')
logging.error('error级别,一般用来打印一些错误信息')
----------------------------
日志输出模块
# 1、创建办公室
# 2、负责往控制台里面输出日志信息
# 3、往日志文件里面写日志
#4、按天生成日志,清理日志
logger = logging.getLogger() #先实例化一个logger对象,先创建一个办公室
logger.setLevel(logging.DEBUG) #设置日志级别
# 这个不需要了 f1 = logging.FileHandler(filename='a.log',mode='a',encoding='utf-8') #找到些日志文件的这个人
cl = logging.StreamHandler() #负责往控制台输出的
b1= handlers.TimedRotatingFileHandler(filename='a.log',when='S',interval=2,backupCount=3,encoding='utf-8')
# S 秒
# M 分
# H 小时、
# D 天、
# W 每星期(interval==0时代表星期一)
# midnight 每天凌晨
fmt = logging.Formatter('%(asctime)s - %(pathname)s[line:%(lineno)d] - %(levelname)s: %(message)s')
#指定日志的格式
cl.setFormatter(fmt) #设置控制台输出的日志格式
b1.setFormatter(fmt) #设置文件里写入的日志格式
logger.addHandler(cl) #把训练好的人放入办公室
logger.addHandler(b1)
测试代码:
logger.debug('我是debug。。。。。')
logger.warning('我是warning。。。。')
# logger.error('我是warning。。。。')
封装写日志的类
import logging
from logging import handlers
class MyLogger():
def __init__(self,file_name,leve='info',backCount=5,when='D'):
logger = logging.getLogger() # 先实例化一个logger对象,先创建一个办公室
logger.setLevel(self.get_level(leve)) # 设置日志级别
cl = logging.StreamHandler() # 负责往控制台输出的
b1 = handlers.TimedRotatingFileHandler(filename=file_name, when=when, interval=1, backupCount=backCount, encoding='utf-8')
fmt = logging.Formatter('%(asctime)s - %(pathname)s[line:%(lineno)d] - %(levelname)s: %(message)s')
cl.setFormatter(fmt) # 设置控制台输出的日志格式
b1.setFormatter(fmt) # 设置文件里写入的日志格式
logger.addHandler(cl) # 把训练好的人放入办公室
logger.addHandler(b1)
self.logger = logger
def get_level(self,str):
leve = {
'debug':logging.DEBUG,
'info':logging.INFO,
'warn':logging.WARNING,
'error':logging.ERROR
}
str = str.lower()
return leve.get(str)
duan_log = MyLogger('DUJL.log')
duan_log.logger.warning('哈哈哈')