import argparse import logging from logging.handlers import RotatingFileHandler def parse_project_args(parser): parser.add_argument('--module_name',type=str, default='pyml', help='模块名称') parser.add_argument('--ice_proxy',type=str, default='MIA', help='发送ice的目的地模块') parser.add_argument('--logdir', type=str, default='/iPlature/log/', help='日志根目录') parser.add_argument('--file_name',type=str, default='pyml.log', help='日志文件名') parser.add_argument('--max_bytes',type=int, default=1024*1024*10, help='单个日志最大文件大小') parser.add_argument('--backup_count', type=str, default=20, help='日志数量') return parser.parse_args() pyml_parser = argparse.ArgumentParser('project name:pyml') pyml_conf = parse_project_args(pyml_parser) def get_log(file_name): logger = logging.getLogger() logger.setLevel(logging.INFO) formatter = logging.Formatter('%(asctime)s|%(levelname)s| %(message)s') filehandler = logging.handlers.RotatingFileHandler(pyml_conf.logdir+file_name+".log", mode='a', maxBytes=pyml_conf.max_bytes, backupCount=pyml_conf.backup_count)#每 1024Bytes重写一个文件,保留2(backupCount) 个旧文件 filehandler.setFormatter(formatter) logger.addHandler(filehandler) return logger class LOG(object): def __init__(self) -> None: self.log_map_={} self.log_map_[pyml_conf.module_name]=get_log(pyml_conf.module_name) def get_log(self,file_name): if(file_name in self.log_map_): return self.log_map_[file_name] else: try: self.log_map_[file_name]=get_log(file_name) return self.log_map_[file_name] except: return self.log_map_[pyml_conf.module_name] LOGMake=LOG()