作为python的新手,我终于设法在一个额外模块(tools.py)的类中创建了自己的自定义记录器。这里的主要成就之一是,我可以设置记录器的名称,并且还可以设置日志文件的名称。
我想在一个模块(recalc.py)中实例化main中的记录器,并从此处在另一个模块(getData.py)中调用函数prepData。 getData.py模块中的prepData函数应该使用在recalc.py中实例化的记录器实例。 prepData正在使用相同记录器实例的相同模块中调用其他函数。
我无法掌握如何声明/实例化记录器的方法,因为只有具有main函数的in模块recalc.py才知道记录器的正确名称。
module tools.py
:
class Logg():
:
。
module recalc.py
import tools
from getData import prepData
:
lg = Logg("recalc", ...) # instantiate the logger
:
result = prepData(...)
。
module getData.py
:
def otherFunc()
lg.debug(...)
:
return X
def prepData(...)
lg.info(...)
:
x = otherFunc(...)
:
return RES
我在Python,Python 3, one class used across multiple modules等中读到了很多有关(不是真正存在的)全局变量的信息。 config.py解决方案意味着在config.py本身中初始化全局变量。但这对我不起作用,因为只有主模块才知道记录器名称。
从长远来看,我现在所拥有的解决方法是不可接受的。 感谢您的帮助。