Я использую модуль протоколирования Python и хотел бы отключить сообщения журнала, напечатанные сторонними модулями, которые я импортирую. Например, я использую нечто вроде следующего: («! Мое сообщение»)Python Logging - отключить ведение журнала из импортированных модулей
logger = logging.getLogger()
logger.setLevel(level=logging.DEBUG)
fh = logging.StreamHandler()
fh_formatter = logging.Formatter('%(asctime)s %(levelname)s %(lineno)d:%(filename)s(%(process)d) - %(message)s')
fh.setFormatter(fh_formatter)
logger.addHandler(fh)
Это печатает мои сообщения отладки, когда я делаю logger.debug, но он также выводит отладочные сообщения из любой модуль импорта (например, запросы и ряд других вещей).
Я хотел бы видеть только сообщения журнала из модулей, которые меня интересуют. Можно ли сделать этот модуль регистрации?
В идеале я хотел бы сообщить логгеру для печати сообщений с модуля ModuleX, ModuleY и игнорировать все остальные.
Я посмотрел на следующем, но я не хочу, чтобы отключить/включить ведение журнала перед каждым вызовом к импортируемой функции: logging - how to ignore imported module logs?
Помните, что при попытке настроить регистраторы, как в официальном базовом учебнике, с помощью 'logging.basicConfig (...)' все регистраторы теперь будут либо выводиться на 'logging.lastResort' (начиная с Python 3.2, который stderr), если обработчик не был указан или обработчик, который вы установили. Поэтому не используйте его, иначе вы все равно будете получать все сообщения журнала. – user136036