Не используйте basicConfig
. Убедитесь, что ваши модули регистрируются в своем журнале, а не в корневом журнале.
log = logging.getLogger('my_package')
log.debug('a message')
Убедитесь, что только настройки лесозаготовительные обработчиков в одном модуле, как правило, это делается в сценарии вы называете, что запускает программу. Получите тот же регистратор, который используется в вашем пакете, а затем добавьте обработчик в только, который регистрирует.
log = logging.getLogger('my_package')
handler = logging.StreamHandler()
handler.setLevel(logging.DEBUG)
log.addHandler(handler)
Вы должны видеть только протоколирование сообщений от my_package
логгера, а также от детей этого регистратора.
Общая конвенция, чтобы положить это в верхней части каждого модуля у вас есть, что собирается использовать лесозаготовки
log = logging.getLogger(__name__)
Таким образом, регистратор используется для каждого модуля будет просто путь импорта для этого модуля , Поэтому, если вы импортируете этот модуль, выполнив import package.module
, имя регистратора также будет "package.module"
. Таким образом, легко указать конкретный регистратор, который вы хотите зарегистрировать.
Как вы настраиваете журналирование сообщений для печати? Вы используете 'basicConfig'? Вы создаете обработчик потока ведения журнала? –
Да basicConfig() глобально. обработчик не использовался. – sdaffa23fdsf