Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python日志从多个位置调用模块_Python_Logging - Fatal编程技术网

Python日志从多个位置调用模块

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)继承日志处理程序和格式化程序。通

我想使用python的日志模块和此处描述的点“.”名称结构为我的项目设置日志层次结构:

对于给定的模块(bar.py),我想设置如下记录器:

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')
    ...
请参阅可能的副本