''' ①模块里调用了logging日志模块,定义一个类Log ②Log类里定义了初始化方法__init__(),初始化方法需要入两个参数,一个是日志器的名字name,一个是日志等级level,实例属性self.logName用来接收实例化的日志器的名字,需要其他属性时自己定义即可 ③定义logFile()方法,实例对象调用该方法时,需要入参文件名字fileName,调用该方法就启用日志器信息输出到指定的文件名里,日志的信息格式统一都是"年月日时分秒 - 日志器名字 - 日志等级 - 日志信息",输入的字符集编码写死成utf-8即可 ④定义logConsol()方法,实例对象调用该方法时,调用该方法就启用日志器信息输出到控制台,日志的信息格式统一都是"年月日时分秒 - 日志器名字 - 日志等级 - 日志信息" ⑤最后定义一个message()方法,两个形参,一个形参接收日志级别,一个形参接收日志信息,实例调用该方法时,输出不同的日志级别信息 ''' import logging class Log: def __init__(self,name,level): self.logger = logging.getLogger(name) self.level = level.upper() self.log_formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s',datefmt='%Y-%m-%d %H:%M:%S') def logFile(self,filename): if self.logger.handlers: self.logger.handlers.clear() self.logger.setLevel(eval(f'logging.{self.level}')) file_handler = logging.FileHandler(filename,mode='a',encoding='utf-8') file_handler.setFormatter(self.log_formatter) self.logger.addHandler(file_handler) def logConsol(self): if self.logger.handlers: self.logger.handlers.clear() self.logger.setLevel(eval(f'logging.{self.level}')) consol_handler = logging.StreamHandler() consol_handler.setFormatter(self.log_formatter) self.logger.addHandler(consol_handler) def message(self,lvmes,mes): getattr(self.logger,lvmes.lower())(mes)