import loggingfrom logging.handlers import TimedRotatingFileHandlerlogger = logging.getLogger("ALERT LOG FORMAT")logger.setLevel(logging.DEBUG)# 建立一个filehandler来把日志记录在文件里,级别为debug以上LOG_FILE="/data/prometheus/SMS/log/alert.log"fh = TimedRotatingFileHandler(LOG_FILE,when='D',interval=1,backupCount=30) #按天分割日志,保留30天fh.setLevel(logging.DEBUG)# 建立一个streamhandler来把日志打在控制台,级别为error以上#ch = logging.StreamHandler()#ch.setLevel(logging.DEBUG)#设置日志格式formatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s")#ch.setFormatter(formatter)fh.setFormatter(formatter)#将相应的handler添加在logger对象中#logger.addHandler(ch)logger.addHandler(fh)
如果在你的日志里出现了重复日志 说明你肯定有了多个logger.handlers 这需要加下判断 import logging from logging.handlers import TimedRotatingFileHandler
logger = logging.getLogger("ALERT LOG FORMAT")if not logger.handlers: logger.setLevel(logging.DEBUG) # 建立一个filehandler来把日志记录在文件里,级别为debug以上 LOG_FILE="/data/prometheus/SMS/log/alert.log" fh = TimedRotatingFileHandler(LOG_FILE,when='D',interval=1,backupCount=30) #按天分割日志,保留30天 fh.setLevel(logging.DEBUG) # 建立一个streamhandler来把日志打在控制台,级别为error以上 #ch = logging.StreamHandler() #ch.setLevel(logging.DEBUG) #设置日志格式 formatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s") #ch.setFormatter(formatter) fh.setFormatter(formatter) #将相应的handler添加在logger对象中 #logger.addHandler(ch) logger.addHandler(fh)