Я разрабатываю пакет и использую протоколирование для отладки / печати информации во время разработки.Есть ли хороший способ включить ведение журнала только для моего пакета, не включая его для всего, что ниже root?
Скажем, у меня есть my_package:
# Some package from elsewhere that I need but don't want to see logging from
import other_package
import logging
from logging import NullHandler
logger = logging.getLogger(__name__)
logger.addHandler(NullHandler())
def my_func():
logger.debug("a message")
и основная функция для использования пакета:
import my_package
# Some package from elsewhere that I need but don't want to see logging from
import another_package
import logging
logging.basicConfig(level=logging.DEBUG)
my_package.my_func()
Эта настройка позволит мне увидеть вызов my_func ()в logger.debug (), но он также покажет любые вызовы logger.debug () из other_package и another_package, которые я не хочу видеть.Как я могу установить вещи там, где я вижу только запись из my_package?
Я мог бы делать такие хакерские вещи, как жесткий код, отключающий logging.propagate друг друга или подобное, но такое впечатление, что должен быть лучший способ.