Evite registro duplicado em python / flask

Existe um “recurso” complicado no módulo de registro do python. Vamos explorar isso.

Considerando o código abaixo


import logging

main_logger
= logging.getLogger("mywebapp")
controllers_logger
= logging.getLogger("mywebapp.controllers")
models_logger
= logging.getLogger("mywebapp.models")

Isso é muito legal para ter loggers separados sob o mesmo mywebappnamespace. O truque é que, ao configurar o registro, você deve configurar apenas o item superior na hierarquia:

main_logger.addHandler(some_handler)

certifique-se de não adicionar manipuladores ao controllers_loggerou aomodels_logger