我自己写了两个模块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')
时,因为读配置文件又读不到想要的相关配置,所以导致写日志失败.
注:该分析未经证实,仅供参考.