python之logging日志重复输出问题

分类: Python |
在flask框架里面使用了python 的logging日志模块,由于错误异常时,能够记录日志内容到文件。
logger函数代码为:
代码多个地方需要打日志,在需要打日志的地方,代码为:
err_msg = "xxxxxx"
logger = getLogger()
logger.error(err_msg)
结果代码运行过程中,发现日志内容出现很多重复,使得日志内容很臃肿,影响日志内容查看!
之所以出现这个问题的原因在于,我的代码里面多个地方都调用了 getLogger():
logger = getLogger()
每次调用getLogger(),都会添加一个FileHandler :
fh = logging.FileHandler(log_path,mode='a')
多次调用,就会添加多个FileHandler ,有多少个FileHandler
,就会在需要记录日志的地方,重复打印多少次的日志内容。
由此看来,解决办法有两个:
1)、每次记录了日志内容之后,就把这个filehandler移除;
2)、每次调用getLogger()函数,添加filehandler之前,判断一下是否已经存在filehandler,如果存在则不继续添加,这样就不会出现多次添加handler的情况;
第一种办法,移除handler:
err_msg = "xxxxxx"
logger = getLogger()
logger.error(err_msg)
logger.removeHandler(FileHandler)
第二种办法,判断handler:
由此就实现了日志内容不再重复了~
前一篇:MySQL截取指定时间段慢日志
后一篇:Linux诡异的磁盘空间占用问题