默认情况下,我可以在 settings.py 中启用日志记录LOGGING
通过创建记录器进行配置""
这将捕获所有日志。但是,如果我只想查看项目应用程序的日志记录而不是 Django 内部的日志记录,该怎么办?
我可以想象在我的每个 Django 应用程序模块中显式获取一个记录器并按某种约定命名它,例如logging.getLogger("myproject." + __file__)
。然后我可以创建一个名为“myproject”的记录器(在“设置”中),它会拾取所有这些内容进行输出。我不想硬编码我的项目名称,所以我会做一些 os.path 逻辑___file___
以任意深度提取完整的命名空间到文件。
此时,我停下来想知道是否有更简单的方法?
您可以使用如下方案为所有本地应用程序创建相同的记录器,而无需手动将它们全部添加到日志记录配置中。
首先,拆分您的本地应用程序:
LOCAL_APPS = [
'myapp1',
'myapp2',
...
]
THIRD_PARTY_APPS = [
'django. ...',
...
]
INSTALLED_APPS = LOCAL_APPS + THIRD_PARTY_APPS
接下来为本地应用程序创建记录器配置:
local_logger_conf = {
'handlers': ['my_handler',],
'level': 'DEBUG',
}
最后,按如下方式定义您的记录器:
'loggers': { app: copy.deepcopy(local_logger_conf) for app in LOCAL_APPS }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)