Python日志从多个位置调用模块
我想使用python的日志模块和此处描述的点“.”名称结构为我的项目设置日志层次结构: 对于给定的模块(bar.py),我想设置如下记录器:Python日志从多个位置调用模块,python,logging,Python,Logging,我想使用python的日志模块和此处描述的点“.”名称结构为我的项目设置日志层次结构: 对于给定的模块(bar.py),我想设置如下记录器: log = logging.getLogger('x.bar') 在这里,我可以在整个bar.py模块中使用log.(debug/info/warning/etc…)。我知道bar.py永远不会直接运行,但其中的函数可能会从其他几个模块中调用——因此我不知道在代码段中将“x”设置为什么。我希望bar.py从它的调用者(x)继承日志处理程序和格式化程序。通
log = logging.getLogger('x.bar')
在这里,我可以在整个bar.py模块中使用log.(debug/info/warning/etc…)。我知道bar.py永远不会直接运行,但其中的函数可能会从其他几个模块中调用——因此我不知道在代码段中将“x”设置为什么。我希望bar.py从它的调用者(x)继承日志处理程序和格式化程序。通过
logging.getLogger('mymodule')
实例化模块范围的记录器的标准方法不是为您的预期行为量身定制的。您应该做的是让调用者将记录器作为参数传递给模块中的函数
# mymodule.py
def foo(plogger, a, b):
logger=plogger.getChild('bar')
...
请参阅可能的副本