Вопрос о том, как определить регистратор в одном месте, был задан здесь: Использование регистрации в Python в нескольких модулях
Однако в двух основных ответах используется базовая конфигурация или конфигурация файла.Я не хочу использовать конфигурацию файла, потому что я хочу иметь возможность динамически регулировать уровень с помощью аргументов командной строки.Я не хочу использовать базовую конфигурацию, потому что моя конфигурация не будет базовой.
Это не код библиотеки, поэтому меня не интересует, что может случиться, если модуль будет импортирован.Мой код также имеет одну точку входа.
Это (упрощенная) версия того, что у меня есть на данный момент:
temp1.py:
import logging
import sys
import temp2
formatter = logging.Formatter(
fmt = '%(asctime)s - %(module)s - %(levelname)s ===> %(message)s'
)
logger = logging.getLogger('root')
logger.setLevel(logging.DEBUG)
handler = logging.StreamHandler()
handler.setFormatter(formatter)
logger.addHandler(handler)
logger.info("THIS IS AN INFO MESSAGE IN TEMP 1")
temp2.do_something()
temp2.py:
import logging
logger = logging.getLogger(__name__)
logger.info('In temp 2')
def do_something():
logger.critical('doing someting in temp 2')
Это вывод:
2018-11-23 18:31:40,543 - temp1 - INFO ===> THIS IS AN INFO MESSAGE IN TEMP 1
doing something in temp 2
Вывод, который я хотел бы: 1) также отформатировать вывод в файле temp2.py и 2) также записатьсообщение журнала module_level в temp2.py
Я просматривал документы, но не могу понять это.Что мне нужно сделать?