Допустим, у меня есть такой код:Python - использование регистратора внутри функции из модуля вызова его
ModuleA.py:
import logging
logger = logging.getLogger('A')
def utility_func():
logger.info('hi')
print utility_func()
ModuleB.py:
import logging
logger = logging.getLogger('B')
from ModuleA import utility_func
print utility_func()
Когда utility_func является вызванный из ModuleA.py. Я хочу, чтобы он использовал регистратор «A», и когда он вызывается из ModuleB.py, я хочу, чтобы он использовал регистратор «B».
Есть ли способ сделать это? Или лучший способ настроить ситуацию?
Update:
насчет идеи изменения utility_func к:
def utility_func():
logging.info('hi')
бы, что пузырь до какого журнала код вызова использует?
Вы можете явно передать регистратор, я полагаю. Обратите внимание, что обычно вы должны использовать 'logging.getLogger (__ name __)' для установки текущего имени модуля. – jonrsharpe
У меня есть «A» и «B», настроенные в другом месте, чтобы выполнять разные способы ведения журнала. – Greg