Python中未触发根日志器时子日志器无法输出控制台日志的原因
问题原因解析
- Python的
logging模块默认状态下,根日志器没有配置任何输出处理器(Handler)。 - 当调用顶级的
logging.debug('message')函数时,该函数内部会自动完成两个关键操作:- 为根日志器添加一个默认的
StreamHandler(负责将日志输出到控制台); - 执行日志输出逻辑。
- 为根日志器添加一个默认的
- 但如果只调用
logging.getLogger().debug()或者子日志器(如TEST)的debug()方法,由于根日志器没有配置输出处理器,哪怕日志级别已经设为DEBUG,日志也没有输出渠道,所以控制台看不到任何内容。 - 取消注释
logging.debug('message')后,该函数自动给根日志器加上了默认处理器,后续根日志器和子日志器的日志都能通过这个处理器输出到控制台,因此能看到三条日志。
内容的提问来源于stack exchange,提问作者g00dds
相关产品推荐
相关产品推荐

