Wie kann ich alle SQL-Abfragen in Django protokollieren?

Patricia Arquette
Freigeben: 2024-10-17 17:27:03
Original
467 Leute haben es durchsucht

How Can I Log All SQL Queries in Django?

SQL-Abfragen in Django protokollieren

Diese Frage sucht nach einer Methode zum Aufzeichnen aller von einer Django-Anwendung ausgeführten SQL-Abfragen, einschließlich derjenigen, die von der stammen Admin-Site. Die Aufgabe besteht darin, eine zentrale Protokolldatei (z. B. all-sql.log) zu erstellen, um diese SQL-Anweisungen zu erfassen.

LOGGING konfigurieren:

Um dies zu erreichen, führen Sie eine Zusammenführung durch das folgende Snippet mit dem LOGGING-Feld in Ihrer Settings.py:

<code class="python">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'],
        }
    }
}</code>
Nach dem Login kopieren

Erklärung:

  • Setzen Sie „Level“: „DEBUG“, um alles zu erfassen SQL-Abfragen, unabhängig von ihrem Schweregrad.
  • Verwenden Sie „Handler“: [‘console‘], um SQL-Abfragen an die Konsolenausgabe umzuleiten.
  • Konfigurieren Sie „Logger“: {'django.db. backends': {'level': 'DEBUG'}} zum Protokollieren aller über den Django ORM ausgeführten SQL-Abfragen.

Hinweis:

Diese Lösung entstand aus der Antwort von @acardenas89. Es stellt sicher, dass alle von Django ausgeführten SQL-Abfragen in die Konsole geschrieben werden, wenn sich die Anwendung im Debug-Modus befindet.

Das obige ist der detaillierte Inhalt vonWie kann ich alle SQL-Abfragen in Django protokollieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage