52 lines
2.1 KiB
Python
52 lines
2.1 KiB
Python
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() |