我们说我的代码是这样的:
ModuleA.py:
Marshal.SizeOf(typeof(IntPtr))
ModuleB.py:
import logging
logger = logging.getLogger('A')
def utility_func():
logger.info('hi')
print utility_func()
当从ModuleA.py中调用utility_func时,我希望它使用' A'记录器,当它从ModuleB.py调用时,我希望它使用' B'记录器。
有办法做到这一点吗?或者更好的设置方法?
更新
将utility_func更改为:
的想法如何?import logging
logger = logging.getLogger('B')
from ModuleA import utility_func
print utility_func()
这会冒泡到调用代码使用的任何日志吗?
答案 0 :(得分:0)
将它放在一个单独的文件中(如utils.py)
def utility_func(logger):
logger.info('hi')
然后在文件ModuleA.py
中import logging
import utils
logger = logging.getLogger(__name__)
print utility_func(logger)
答案 1 :(得分:0)
这就是我最终的目标。但我仍然很想知道是否有更优雅的方式。
ModuleB.py:
import logging
import ModuleA
logger = logging.getLogger('B')
ModuleA.logger = logger
print ModuleA.utility_func()