我想使用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)继承日志记录处理程序和格式化程序。
答案 0 :(得分:0)
通过logging.getLogger('mymodule')
实例化模块级记录器的标准方法并不适合您的预期行为。相反,您应该做的是让调用者将记录器作为参数传递给模块中的函数
# mymodule.py
def foo(plogger, a, b):
logger=plogger.getChild('bar')
...