Gia*_*rdi 142
将以下代码段与LOGGING您的字段合并settings.py:
LOGGING = {
'version': 1,
'filters': {
'require_debug_true': {
'()': 'django.utils.log.RequireDebugTrue',
}
},
'handlers': {
'console': {
'level': 'DEBUG',
'filters': ['require_debug_true'],
'class': 'logging.StreamHandler',
}
},
'loggers': {
'django.db.backends': {
'level': 'DEBUG',
'handlers': ['console'],
}
}
}
Run Code Online (Sandbox Code Playgroud)
从@ acardenas89回答调整
cev*_*ris 39
在settings.py中添加以下粗体语句
if DEBUG:
import logging
l = logging.getLogger('django.db.backends')
l.setLevel(logging.DEBUG)
l.addHandler(logging.StreamHandler())
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'filters': {
'require_debug_false': {
'()': 'django.utils.log.RequireDebugFalse'
}
},
'handlers': {
'mail_admins': {
'level': 'ERROR',
'filters': ['require_debug_false'],
'class': 'django.utils.log.AdminEmailHandler'
},'console': {
'level': 'DEBUG',
'class': 'logging.StreamHandler',
},
},
'loggers': {
'django.request': {
'handlers': ['mail_admins'],
'level': 'ERROR',
'propagate': True,
},'django.db.backends.sqlite3': {
'level': 'DEBUG',
'handlers': ['console'],
},
}
}
Joh*_*ery 17
也许请查看https://github.com/django-debug-toolbar/django-debug-toolbar
它可以让你看到给定页面生成的所有查询.以及它们出现的堆栈痕迹等.
编辑:要将所有SQL查询记录到文件等,那么您将需要创建一些中间件.中间件可以在每个请求上运行.有几个Django片段用于此类事情:
那些与打印到终端有关,但要使它们适应使用python的日志库并不困难.
Jan*_*zny 12
要在测试期间记录 SQL 查询,您需要做两件事:
django.db.backends 记录器启用和 @override_settings(DEBUG=True) 装饰器。 默认情况下,测试运行程序将设置 DEBUG=False,忽略您在 DJANGO_SETTINGS_MODULE 中可能设置的内容。
最低设置:
# https://docs.djangoproject.com/en/dev/ref/settings/#logging
LOGGING = {
'version': 1,
'handlers': {
'console': {
'class': 'logging.StreamHandler',
},
},
'loggers': {
'django.db.backends': {
'level': 'DEBUG',
},
},
'root': {
'handlers': ['console'],
}
}
Run Code Online (Sandbox Code Playgroud)
示例测试用例:
from django.contrib.auth.models import User
from django.test import TestCase, override_settings
class UserTests(TestCase):
# To log queries in tests you need to manually override DEBUG setting
# because testing sets DEBUG=False by default
@override_settings(DEBUG=True)
def test_create_user(self):
User.objects.create()
Run Code Online (Sandbox Code Playgroud)
Tom*_*ski 11
Django 1.3将所有SQL语句记录到django.db.backends logger:
https://docs.djangoproject.com/en/dev/topics/logging/#django-db-backends
| 归档时间: |
|
| 查看次数: |
52947 次 |
| 最近记录: |