python3.2使用logging不能打印log日志及打印出重复数据

在python3.6中,我们使用logging时还是用logging.basicConfig(level=logging.INFO,format='', filename=name.log, filemode='a')的方式创建写入日志文件,但是在python3.2中这个就显得行不通了,
首先它会出现无法打印日志文件的情况,那么就要使用下面这个写法:
import logging
logger = logging.getLogger()
hdlr = logging.FileHandler('name.log')
logger.addHandler(hdlr)
logger.setLevel(logging.INFO)
logger.info('this is info')
输出结果为:‘this is info’
如果是在定时执行的情况下,就会出现重复打印的情况:
第一次执行:this is info
第二次执行:this is info
this is info
第三次执行:this is info
this is info
this is info
那么这是因为:当第二次调用log的时候,根据getLogger()会获取同一个logger,而这个logger里已经有了第一次你添加的hdlr,第二次调用又添加了一个hdlr,也就是说这个logger里有了两个同样的hdlr,所以就会出现调用几次就会有几个hdlr

那么下面说道解决方案:在最后添加一句logger.handlers.pop()就能解决问题,切记在最后,最后,最后

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • From:Python之日志处理(logging模块) - 云游道士 - 博客园 https://www.cnbl...
    vigny的先生阅读 2,808评论 3 5
  • 2.1简介 Logging库采用模块化方法并且提供了几类组件,它们分别是loggers, handlers, fi...
    风吹柳_柳随风阅读 727评论 0 0
  • 在应用程序中添加日志记录总的来说基于三个目的:监视代码中变量的变化情况,周期性的记录到文件中供其他应用进行统计分析...
    时待吾阅读 5,237评论 1 13
  • LOG http://www.cnblogs.com/yyds/p/6901864.html loogging模块...
    Ericoool阅读 2,662评论 0 0
  • 本人大四,家住新疆,曾因为工作是回家还是留下苦恼过,现在终于决定先留下找找工作再说。过几天有两个面试,需要准备一些...
    凡人略精致阅读 121评论 0 1

友情链接更多精彩内容