Я пытаюсь уменьшить код, необходимый для получения следующего результата
Представьте, что у меня есть четыре файла: 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
Сообщения и уровни многословия являются глупыми примерами.
Как динамически идентифицировать исходный модуль, в котором была определена функция / класс, и зарегистрировать его?(левый столбец в журнале)
Обратите внимание, что пользователь не должен передавать никаких параметров, указывающих имя модуля.