解决python log模块重复打印日志问题
当多个python文件引用log时会导致打印重复日志,如下图;
原因是Logger类中的handlers列表中添加了多个对象;
Logger类源码如下:
所以,要解决这个问题,我的思路是清除handlers列表中多余的对象;
思路步骤如下:
1、我的代码中往handlers列表添加了sh和th两个对象,代码如下
import logging
from logging import handlers
class Logger(object):
level_relations = {
'debug':logging.DEBUG,
'info':logging.INFO,
'warning':logging.WARNING,
'error':logging.ERROR,
'crit':logging.CRITICAL
}#日志级别关系映射
def __init__(self,filename,level='info',when='D',backCount=3,fmt='%(asctime)s - %(pathname)s[line:%(lineno)d] - %(levelname)s: %(message)s'):
self.logger = logging.getLogger(filename)
format