logging的陷阱:python使用logging不能写日志,写不出日志

问题

我自己写了两个模块request和checkcode,这两个中都引用了logging进行记录日志.
当分别使用request和checkcode时均没有问题,但是,将两个模块都导入后,写日志就出现异常.总是一个能写日志,一个不能写日志.

原因

因为两个文件中都是使用logging配置文件的方式创建logger,而且这两个模块都使用的不是同一个配置文件,所以,执行了两遍logging.config.fileConfig(log_conf_file).
我认为,使用logger = logging.getLogger('checkcode')获取到一个Logger,这是一个实例,你使用logger.info('this is a info msg')时,该Logger中并太多的配置信息,所以还是要读配置文件.
当你再导入另一个模块,就会又执行了一遍logging.config.fileConfig(log_conf_file_A),这是就把logging的配置文件又重新刷新.当你再想写之前的logger.info('this is a info msg')时,因为读配置文件又读不到想要的相关配置,所以导致写日志失败.

注:该分析未经证实,仅供参考.

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值