python log日志打印两遍_python打印log重复问题

本文探讨了Python日志logging模块导致日志重复输出的问题,原因是logger实例未被正确管理。通过改名换姓、及时清理handler或者用前判断等方法,可以有效解决该问题。学习面向对象编程有助于深入理解logging模块的工作原理。
摘要由CSDN通过智能技术生成

浅析python日志重复输出问题

问题起源:

​ 在学习了python的函数式编程后,又接触到了logging这样一个强大的日志模块。为了减少重复代码,应该不少同学和我一样便迫不及待的写了一个自己的日志函数,比如下面这样:

import logging

# 这里为了便于理解,简单的展示了一个输出到屏幕的日志函数

def my_log():

logger = logging.getLogger('mysql.log')

ch = logging.StreamHandler()

ch.setLevel(logging.ERROR)

fmt = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')

ch.setFormatter(fmt)

logger.addHandler(ch)

return logger

my_log().error('run one')

my_log().error('run two')

my_log().error('run three')

函数写好了,看起来似乎也没有问题,我们来运行一下!

结果如下:

2018-06-21 13:06:37,569 - mysql.log - ERROR - run one

2018-06-21 13:06:37,569 - mysql.log - ERROR - run two

2018-06-21 13:06:37,569 - mysql.log - E

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值