Я хочу войти в один файл журнала из основного и всех субмодулей.
Сообщения журнала, отправленные из основного файла, где я определяю регистратор, работают как положено. Но те, которые отправляются из вызова импортированной функции, отсутствуют.
Это работает, если я использую logging.basicConfig, как в примере 1 ниже.
Но второй пример, который учитывает больше пользовательских настроек, не работает.
Есть идеи почему?
# in the submodule I have this code
import logging
logger = logging.getLogger(__name__)
ПРИМЕР 1 - Рабочая
Здесь я создаю два обработчика и просто передаю их basicConfig
:
# definition of root looger in main module
formatter = logging.Formatter(fmt="%(asctime)s %(name)s.%(levelname)s: %(message)s", datefmt="%Y.%m.%d %H:%M:%S")
handler = logging.FileHandler('logger.log')
handler.setFormatter(formatter)
handler.setLevel(logging.DEBUG)
handler2 = logging.StreamHandler(stream=None)
handler2.setFormatter(formatter)
handler2.setLevel(logging.DEBUG)
logging.basicConfig(handlers=[handler, handler2], level=logging.DEBUG)
logger = logging.getLogger(__name__)
ПРИМЕР 2 - Не работает
Здесь я создаю два обработчика и addHandler()
отправляем их в корневой логгер:
# definition of root looger in main module
logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)
handler = logging.FileHandler('logger.log')
handler.setFormatter(formatter)
handler.setLevel(logging.DEBUG)
#handler.setLevel(logging.ERROR)
logger.addHandler(handler)
handler = logging.StreamHandler(stream=None)
handler.setFormatter(formatter)
handler.setLevel(logging.DEBUG)
logger.addHandler(handler)