使用python的logger日志包,遇到以下问题,日志信息每次增加1行,而且都是重复的,现象如下:
2021-03-21 11:35:30,864 - [INFO] - 2021-03-21 11:35:30,num:1
2021-03-21 11:35:34,284 - [INFO] - 2021-03-21 11:35:34,num:2
2021-03-21 11:35:34,284 - [INFO] - 2021-03-21 11:35:34,num:2
2021-03-21 11:35:37,701 - [INFO] - 2021-03-21 11:35:37,num:3
2021-03-21 11:35:37,701 - [INFO] - 2021-03-21 11:35:37,num:3
2021-03-21 11:35:37,701 - [INFO] - 2021-03-21 11:35:37,num:3
2021-03-21 11:35:41,130 - [INFO] - 2021-03-21 11:35:41,num:4
2021-03-21 11:35:41,130 - [INFO] - 2021-03-21 11:35:41,num:4
2021-03-21 11:35:41,130 - [INFO] - 2021-03-21 11:35:41,num:4
2021-03-21 11:35:41,130 - [INFO] - 2021-03-21 11:35:41,num:4
2021-03-21 11:35:44,574 - [INFO] - 2021-03-21 11:35:44,num:5
2021-03-21 11:35:44,574 - [INFO] - 2021-03-21 11:35:44,num:5
2021-03-21 11:35:44,574 - [INFO] - 2021-03-21 11:35:44,num:5
2021-03-21 11:35:44,574 - [INFO] - 2021-03-21 11:35:44,num:5
2021-03-21 11:35:44,574 - [INFO] - 2021-03-21 11:35:44,num:5
2021-03-21 11:35:47,962 - [INFO] - 2021-03-21 11:35:47,num:6
2021-03-21 11:35:47,962 - [INFO] - 2021-03-21 11:35:47,num:6
2021-03-21 11:35:47,962 - [INFO] - 2021-03-21 11:35:47,num:6
2021-03-21 11:35:47,962 - [INFO] - 2021-03-21 11:35:47,num:6
2021-03-21 11:35:47,962 - [INFO] - 2021-03-21 11:35:47,num:6
2021-03-21 11:35:47,962 - [INFO] - 2021-03-21 11:35:47,num:6
......
logfile = time.strftime("%Y-%m-%d", time.localtime()) + ".log"
while True:
ln= logger(logfile ).log()
ln.info("xxxxx")
改正:
logfile = time.strftime("%Y-%m-%d", time.localtime()) + ".log"
ln= logger(logfile ).log()
while True:
ln.info("xxxxx")
原因分析:
python logger的一些问题
logging的logger模块是被缓存的,如果多次获取logger,多次调用addHanlder添加Hanlder,则此logger的Handler会越来越多,而每个Handler都会打印一次日志。会发生1/2/3/4/5/6/7重复的日志记录信息等等