Код: Выделить всё
# consider this somepackage
import logging
logger = logging.getLogger(__name__)
def blah():
logger.info("slkdjflksjfkld")
...
Что происходит, это после моего импорта fileConfig вызывается, и ведение журнала, форматирование и т. д. настраиваются с нуля, и он удаляет все средства ведения журнала уровня модуля, которые были в импортированных пакетах.
Так, например, если какой-то пакет инициировал журналирование как выше, и я делаю это:
Код: Выделить всё
# logging.getLogger() is going to be called immediately
from somepackage import blah
# Import my logging config package and get a logger
from mycomp.logging import get_logger
logger = get_logger(my custom params)
Но если я сделайте это в следующем порядке: какой-нибудь пакет правильно получит мою глобальную конфигурацию журналирования:
Код: Выделить всё
# FIRST Import my logging config package and get a logger before anything else
from mycomp.logging import get_logger
logger = get_logger(my custom params)
# Now logging.getLogger() picks up my custom global logging config
from somepackage import blah
Подробнее здесь: https://stackoverflow.com/questions/791 ... ith-3rd-pa