关于python logging模块读文档的几个心得

1. logger是分层级的,root是所有logger的祖先。

2. root这个logger在执行logging.warning() 等一系列方法和basicConfig()的时候才会被初始化handler, 否则该logger是没有handler的。

3.使用类似logging.getLogger(‘fdsfdsf’) 生成的logger是没有handler的,需要自己手动添加。

4.某个logger如果依照propagate的配置propagate完之后,没有handler处理过,对于python 3.2及其之后的版本,则使用 logging.lastResort 所指向的handler。

 

基于以上总结可知:

1.如果自己命名了一个logger,不用担心使用该logger  log的信息被本logger配置的handler处理之后又被root的handler处理。只要不要执行logging.warning() 等方法及basicConfig()方法。

2.不用担心某个子logger没有配置handler而导致lastSort特性发挥作用而产生异常输出,因为该特性要等子logger找完parent logger,一直到propagate为False或者parent为None的时候,如果这时还没遇到过handler,reSort特性才会生效。

posted @ 2019-11-29 00:01  张不正  阅读(336)  评论(0编辑  收藏  举报
返回顶部