python之logging模块

这个模块是打印日志使用的,封装自动化测试环境时用来输入log日志使用

import logging
from logging import handlers
class Logger(object):
level_relations = {
'debug': logging.DEBUG,
'info': logging.INFO,
'warning': logging.WARNING,
'error': logging.ERROR,
'crit': logging.CRITICAL
}

def __init__(self,filename,level='debug',
when='s',
back_count=3,
fmt='%(asctime)s - %(pathname)s[line:%(lineno)d] - %(levelname)s: %(message)s'
):
self.logger = logging.getLogger(filename)
#先创建一个logger对象,相当于这个办公室
format_str = logging.Formatter(fmt)
#指定日志格式,我也不知道啥意思,fmt写法是我搬运来的
self.logger.setLevel(self.level_relations.get(level))
#设置日志级别
sh = logging.StreamHandler()
#创建一个控制台输出的处理器
sh.setFormatter(format_str)
#设置处理器的日志格式
th = handlers.TimedRotatingFileHandler(filename=filename, when=when, backupCount=back_count, encoding='utf-8')
#指定时间间隔自动生成文件的处理器
#backupCount是备份文件的个数,如果超过这个个数,就会自动删除
#when是时间间隔,单位有S(秒)M(分)H(小时)D(天)W(每星期,inerval==0是代表星期一)midnight(每天凌晨)
th.setFormatter(format_str)
#设置处理器的日志个事
self.logger.addHandler(sh)
self.logger.addHandler(th)
#把两个handler加入容器头,相当于把工作人员培训完可以上岗了

if __name__ == '__main__':
log = Logger('test.log')



原文地址:https://www.cnblogs.com/mpp0905/p/8609672.html