Регистрировать имя модуля в сложной системе пакетов - PullRequest
0 голосов
/ 02 мая 2019

Я пытаюсь уменьшить код, необходимый для получения следующего результата

Представьте, что у меня есть четыре файла: core, log, func1, program.

Если возникает какая-либо ошибка, я хочучтобы сообщить, где произошла эта ошибка, используя мой собственный модуль журнала.

Если у меня в основном модуле следующее.

def core_function(*args, **kwargs):
    log(msg)
    core_statements
    ...

Модуль func1 У меня больше функций

def f(*args, **kwargs):
    log(msg)

    core_function(10, 100)

    auxiliary_statements
    ...

Наконец, в основной программе я использую оба модуля: core, func1 и log

log(msg)
f(a = 1, b = 2, x = 100)

Как напечатать в журнале следующее, если произошло что-то странное?

program       INFO :   Starting main progra,
core.core_function ERROR:   Error occurred in the core module
func1.f             WARNING: Value of x higher than 10

Сообщения и уровни многословия являются глупыми примерами.

Как динамически идентифицировать исходный модуль, в котором была определена функция / класс, и зарегистрировать его?(левый столбец в журнале)

Обратите внимание, что пользователь не должен передавать никаких параметров, указывающих имя модуля.

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