赞
踩
代码:
- def print_log():
- tim = time.strftime('%Y-%m-%d',time.localtime(time.time()))
- logFile = str('{}.log'.format(tim))
- # if os.path.exists('../log/{}.log'.format(time)):
- # logFile = '{}.log'.format(time)
- logger = logging.getLogger('../LOG/{}'.format(logFile))
-
- fmt = '%(asctime)s - %(funcName)s - %(lineno)d - %(name)s - %(levelname)s -%(module)s: %(message)s'
- format_str = logging.Formatter(fmt)
- logger.setLevel(logging.INFO)
-
- sh = logging.StreamHandler()#输出到屏幕
- sh.setFormatter(format_str)
-
- th = handlers.TimedRotatingFileHandler(filename='../LOG/{}'.format(logFile), when='D', interval=5, encoding='utf-8')
- th.setFormatter(format_str)
-
- logger.addHandler(sh)
- logger.addHandler(th)
-
- return logger

logger.handlers
最初是一个空列表,执行‘logger.addHandler(sh)’添加一个‘StreamHandler’,输出一条日志logger.handlers
已经存在一个‘StreamHandler’,再次执行‘logger.addHandler(sh)’就会再次添加一个‘StreamHandler’,此时的logger有两个‘StreamHandler’,输出两条重复的日志logger.handlers
已经存在两个‘StreamHandler’,再次执行‘logger.addHandler(ch)’就会再次添加一个,此时的logger有三个‘StreamHandler’,输出三条重复的日志,解决办法:及时清理(logger.handlers.clear)
- def print_log():
- tim = time.strftime('%Y-%m-%d',time.localtime(time.time()))
- logFile = str('{}.log'.format(tim))
- # if os.path.exists('../log/{}.log'.format(time)):
- # logFile = '{}.log'.format(time)
- logger = logging.getLogger('../LOG/{}'.format(logFile))
- logger.handlers.clear()#及时清理
- fmt = '%(asctime)s - %(funcName)s - %(lineno)d - %(name)s - %(levelname)s -%(module)s: %(message)s'
- format_str = logging.Formatter(fmt)
- logger.setLevel(logging.INFO)
-
- sh = logging.StreamHandler()#输出到屏幕
- sh.setFormatter(format_str)
-
- th = handlers.TimedRotatingFileHandler(filename='../LOG/{}'.format(logFile), when='D', interval=5, encoding='utf-8')
- th.setFormatter(format_str)
-
- logger.addHandler(sh)
- logger.addHandler(th)
-
- return logger

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。