在django中是否有任何方法可以在每个页面中包含一些模块

时间:2015-05-21 02:31:22

标签: python django

在我的django应用程序中,我必须在几乎每个页面中包含记录器,大约30个不同的文件,如

import logging
logger_test = logging.getLogger('test')

logger_test.info('test')

有没有任何方法可以包含在所有文件中,我可以运行

logger_test.info('test')

1 个答案:

答案 0 :(得分:3)

首先,我希望将logger_test放在某处并使用from myapp import logger_test。每个文件一个额外的行不太可能造成严重破坏。

您可以使用适当命名的builtins模块(py2 __builtins__)来执行此操作。只需将记录器添加到内置模块的任何位置,将其置于settings.py中可能是一个不错的选择。

import builtins
import logging

logger = logging.getLogger('test')
setattr(builtins, 'logger_test', logger)

现在每个模块都有logger_test可用。最后一个警告,这是一个非常糟糕的主意。