希望我有一个关于python / django日志记录的简单问题。
我正在编写一个Django应用程序,它会调用一些模块,这些模块会在适当的时候与其他进程,作业,脚本甚至其他应用程序共享 - 例如常见的计算。
我已经在settings.py中配置了我的Django应用程序的日志记录,然后在我的主应用程序模块(views.py等)中为我获取了记录器:
logger = logging.getLogger('exampleApp')
一切都按预期工作。
但是,当我的应用程序调用其他共享包中的模块时,我显然不希望使用相同的logging.getLogger('exampleApp')调用,因为那时使用此模块的其他进程将使用不正确的记录器配置。 / p>
此外使用
logging.getLogger(__name__)
表示当我从我的Django应用程序调用此模块时,它不会记录到正确的文件。
所以我的问题是,对于共享模块,记录器是否有办法在“父调用者”中使用该实例,换句话说是Django应用程序或独立服务器进程或脚本等?或者它是否必须将记录器实例传递给模块中定义的类(作为构造函数中的参数)?
希望这是有道理的。
感谢。
答案 0 :(得分:1)
我没有传递记录器对象的方法就是改变
logger = logging.getLogger('exampleApp')
在顶级模块中
logger = logging.getLogger()
以便实际获取root
记录器。此根记录器格式将跟随其他模块。