加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

python之logging日志重复输出问题

(2019-10-25 22:29:04)
分类: Python
在flask框架里面使用了python 的logging日志模块,由于错误异常时,能够记录日志内容到文件。
logger函数代码为:
python之logging日志重复输出问题

代码多个地方需要打日志,在需要打日志的地方,代码为:
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:

python之logging日志重复输出问题


由此就实现了日志内容不再重复了~


0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有