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特性才会生效。

相关文章:

  • 2022-02-26
  • 2021-06-29
  • 2021-07-29
  • 2021-06-28
  • 2022-12-23
  • 2022-01-10
  • 2021-10-25
猜你喜欢
  • 2022-12-23
  • 2021-10-09
  • 2022-01-07
  • 2022-12-23
  • 2021-08-08
  • 2021-12-24
相关资源
相似解决方案