регистрировать все запросы sql

Как я могу регистрировать все SQL-запросы, которые выполнял приложение django?

Я хочу регистрировать все, включая SQL-файлы с сайта администратора. Я видел этот вопрос и ответы на часто задаваемые вопросы, но я до сих пор не могу понять, куда я должен поставить

from django.db import connection connection.queries 

записывать все в один файл?

Поэтому мой вопрос: что мне делать, чтобы иметь файл (скажем, all-sql.log), где записываются все SQL-запросы?

Возможно, посмотрите https://github.com/django-debug-toolbar/django-debug-toolbar

Это позволит вам увидеть все запросы, сгенерированные данной страницей. Также, как и стекы, где они происходят и т. Д.

EDIT: для регистрации всех SQL-запросов в файл и т. Д., Тогда вам нужно создать некоторое промежуточное ПО. Middleware запускается по каждому запросу. Для этого есть несколько fragmentов Django:

Это касается печати на терминале, но было бы нелегко адаптировать их к использованию библиотеки протоколов python.

Слейте следующий fragment с полем 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'], } } } 

Отправлено от @ acardenas89 ответ

Добавьте следующие жирные выражения в settings.py


  если DEBUG: 
      регистрация импорта 
      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'
         }
     },
     «обработчики»: {
         'mail_admins': {
             'level': 'ERROR',
             'filters': ['require_debug_false'],
             'class': 'django.utils.log.AdminEmailHandler'
         }, 'console': { 
              'level': 'DEBUG', 
              'class': 'logging.StreamHandler', 
          } ,
     },
     'loggers': {
         'django.request': {
             «обработчики»: ['mail_admins'],
             'level': 'ERROR',
             «распространять»: правда,
         }, 'django.db.backends.sqlite3': { 
              'level': 'DEBUG', 
              'handlers': ['console'], 
          } ,
     }
 }

Ресурс / Кредит

Django 1.3 записывает все SQL- запросы в django.db.backends logger:

https://docs.djangoproject.com/en/dev/topics/logging/#django-db-backends

Вы должны поместить это в пакет промежуточного программного обеспечения. Средство промежуточного уровня находится между kernelм webserver / django и всеми вашими представлениями. Он может выполнять предварительную обработку перед запросом и постобработку после завершения запроса. Например, сохраните запросы в файл.

  • Django: Как перенаправить сообщение и передать данные сообщения
  • Django - Войти через E-mail
  • Структура каталога Django?
  • Как я могу получить полный / абсолютный URL (с доменом) в Django?
  • Django - Соединение отказано
  • Django: доступ к переменным сеанса из шаблона?
  • Django: группа по дате (день, месяц, год)
  • Разница между методами Django filter () и get ()
  • Django: переадресовать пользователей с учетной записи
  • Альтернатива устаревшему setup_environ () для одноразовых скриптов django?
  • django запрос получить последние n записей
  • Interesting Posts

    Найти прикрепленные / связанные события элемента с помощью инструментов разработки Chrome / Firebug / IE

    вставлять данные из одной таблицы в другую в mysql

    Модули DDR3 имеют размеры более 2 ГБ?

    Firefox, сохраняя все изображения с каждой страницы, чтобы их можно было восстановить?

    Как вы можете разрешить mutt шифровать письма в папке отправленной почты?

    Сокращения параллельно в логарифмическом времени

    OEM Office 2010 без носителя – как переустановить?

    Подстановочные знаки в Word

    После установки Hyper V Windows 10 обнаруживает дополнительные общие мониторы PnP

    Почему я получаю символ глаза на своих почтовых учетных записях в полях пароля в Internet Explorer?

    Когда использовать функции Cast () и Oftype () в Linq

    Как стилизовать поле подтверждения по умолчанию с помощью только css?

    Как читать многослойные файлы Fireworks PNG без фейерверков

    Xcode: TEST против макросов препроцессора DEBUG

    Уникальное генерирование случайных строк

    Давайте будем гением компьютера.