在使用python中的日志模块时会出现日志文件里的记录成线性增加(第一条记录写入一条,第二条记录写入两条…一次增加的情况)
在使用python中编写win服务的模块及ThreadingTCPServer模块时遇到上述情况
在logger方法中增加logger.handlers.clear()
即可解决线性增加问题,部分代码如下:
def _getLogger():
logger = logging.getLogger('[TCP]')
# 添加语句防止重复写入日志内容
logger.handlers.clear()
dirpath = path.dirname(__file__) + '\\log\\'
handler = logging.FileHandler(os.path.join(dirpath, "tcp_service.log"))
formatter = logging.Formatter('%(asctime)s %(name)-12s %(levelname)-8s %(message)s')
handler.setFormatter(formatter)
logger.addHandler(handler)
logger.setLevel(logging.INFO)
return logger