Removing handlers from python's logging loggers

后端 未结 4 1906
礼貌的吻别
礼貌的吻别 2020-12-13 23:03

I am playing with Python\'s logging system. I have noticed a strange behavior while removing handlers from a Logger object in a loop. Namely, my for loop removes all but one

4条回答
  •  不知归路
    2020-12-13 23:40

    instead of mutating undocumented .handler:

    Option 1

    logging.getLogger().removeHandler(logging.getLogger().handlers[0])
    

    this way you remove exactly the preexisting handler object via offical api. Or to remove all handlers:

    logger = logging.getLogger()
    while logger.hasHandlers():
        logger.removeHandler(logger.handlers[0])
    

    Option 2

    logging.config.dictConfig(config={'level': logging.DEBUG, 'handlers': []}
    

    Not only removes but prevents its creation. List root will have [] handlers

提交回复
热议问题