django - 使用 DJango 日志记录配置记录 SQL。记录器总是试图与公共模式连接
问题描述
以下是我们的 Django 应用程序的日志记录配置
logging.config.dictConfig({
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'verbose': {
'format': '%(asctime)s %(name)-12s %(lineno)d %(module)s %(levelname)-8s %(message)s'
},
'simple': {
'format': '%(levelname)s %(message)s'
},
},
'filters': {
'require_debug_false': {
'()': 'django.utils.log.RequireDebugFalse'
}
},
'handlers': {
'console': {
'level': 'DEBUG',
'class': 'logging.StreamHandler',
'formatter': 'simple'
},
'file': {
'level': 'DEBUG',
'class': 'logging.handlers.RotatingFileHandler',
'maxBytes': 15728640, # 100MB
'backupCount': 10,
'formatter': 'verbose',
'filename': 'log_files/acme-slcms.log',
'encoding': 'utf-8',
},
'mail_admins': {
'level': 'CRITICAL',
'filters': ['require_debug_false'],
'class': 'django.utils.log.AdminEmailHandler'
},
},
'loggers': {
'django': {
'propagate': True,
'level': 'DEBUG',
'handlers': ['file'],
},
'django.db.backends': {
'propagate': False,
'level': 'DEBUG',
'handlers': ['file'],
}
}
})
我们添加了django.db.backends
记录器来打印应用程序生成的查询。但从输出来看,记录器似乎正在连接到public schema
2021-10-06 13:37:39,704 django.db.backends 123 utils DEBUG (0.089)
SELECT c.relname, c.relkind
FROM pg_catalog.pg_class c
LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
WHERE c.relkind IN ('r', 'v', '')
AND n.nspname = 'public'
AND pg_catalog.pg_table_is_visible(c.oid); args=None
添加日志配置后,我们没有看到除此之外的任何查询。
该应用程序实际上正在使用另一种模式来存储和检索数据,并django-tenant
作为自研框架的一部分使用。
笔记
我们可以看到该行 2021-10-06 09:39:58,096 django.utils.autoreload 368 autoreload DEBUG
正在连续打印。
例如:2021-10-06 09:39:58,096 django.utils.autoreload 368 autoreload DEBUG File /home/foo/Desktop/bar/my_env/lib/python3.8/site-packages/fido2/attestation/android.py first seen with mtime 1612337859.0
解决方案
推荐阅读
- visual-studio-code - Visual Studio 将其标记为错误但运行时完全正常,这是一个错误吗?
- r - Ggplotly 直方图 - 如何编辑工具提示?
- python - 单击鼠标按钮时如何继续移动字符
- python-3.x - Python ThreadPoolExecutor 异步
- python - 使用python获取和修改docx文档中的形状?
- android - 在 Spek 测试中使用 Koin 测试
- javascript - 无法使用 $lookup 从 mongodb nodejs 中的外部表中获取数据
- plotly - 用线消失问题绘制图表
- c# - Unity 2d Character 使用 UI 按钮移动和跳转到特定位置
- php - 测试数据库 laravel 7.x 的问题