Python日志记录从多个地方调用模块

时间:2018-07-16 19:26:46

标签: python logging

我想使用python的日志记录模块和点'。为我的项目设置日志记录层次结构。这里描述的名称结构:https://docs.python.org/2/library/logging.html#logging.getLogger

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

log = logging.getLogger('x.bar')

然后在整个bar.py模块中使用log。(debug / info / warning / etc ...)。我知道bar.py永远不会直接运行,但是其中的函数可能会从其他几个模块中调用-因此,我不知道在代码片段中设置'x'的具体方法。我希望bar.py从调用方(x)继承日志记录处理程序和格式化程序。

1 个答案:

答案 0 :(得分:0)

通过logging.getLogger('mymodule')实例化模块级记录器的标准方法并不适合您的预期行为。相反,您应该做的是让调用者将记录器作为参数传递给模块中的函数

# mymodule.py
def foo(plogger, a, b):
    logger=plogger.getChild('bar')
    ...
相关问题