Python определяет регистратор в одном месте без использования базовой конфигурации или конфигурации файла - PullRequest
0 голосов
/ 23 ноября 2018

Вопрос о том, как определить регистратор в одном месте, был задан здесь: Использование регистрации в 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

Я просматривал документы, но не могу понять это.Что мне нужно сделать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...