Maison > base de données > tutoriel mysql > Comment puis-je enregistrer toutes les requêtes SQL dans mon application Django ?

Comment puis-je enregistrer toutes les requêtes SQL dans mon application Django ?

Patricia Arquette
Libérer: 2025-01-15 21:21:47
original
194 Les gens l'ont consulté

How Can I Log All SQL Queries in My Django Application?

Connectez toutes les requêtes SQL dans votre application Django

Cet article vous expliquera comment enregistrer efficacement toutes les requêtes SQL exécutées par votre application Django, y compris les requêtes du site d'administration. La clé est de modifier le champ settings.py dans le fichier LOGGING.

Étapes de mise en œuvre :

  1. Importer la bibliothèque de journalisation : Tout d'abord, importez la bibliothèque logging dans votre code. Cela vous permet de configurer et de gérer la fonctionnalité de journalisation.
<code class="language-python">import logging</code>
Copier après la connexion
  1. Définir un processeur personnalisé (facultatif) : Vous pouvez choisir de créer un processeur personnalisé pour traiter le journal des requêtes SQL. Ceci n'est pas obligatoire, mais offre plus de contrôle sur le comportement de journalisation.
<code class="language-python">class QueryHandler(logging.Handler):
    def emit(self, record):
        # 自定义处理SQL查询的逻辑
        pass</code>
Copier après la connexion
  1. Configurer les paramètres du journal : Fusionnez l'extrait de code suivant dans le champ settings.py du fichier LOGGING. Cela permettra la journalisation des requêtes SQL et la sortie directe vers le processeur défini.
<code class="language-python">LOGGING = {
    'version': 1,
    'filters': {
        'require_debug_true': {
            '()': 'django.utils.log.RequireDebugTrue',
        }
    },
    'handlers': {
        'console': {
            'level': 'DEBUG',
            'filters': ['require_debug_true'],
            'class': 'logging.StreamHandler',
        },
        'query_handler': {
            'level': 'DEBUG',
            'filters': [],
            'class': 'path.to.QueryHandler', # 将path.to.QueryHandler替换为您的自定义处理器的路径
        }
    },
    'loggers': {
        'django.db.backends': {
            'level': 'DEBUG',
            'handlers': ['query_handler'],
        }
    }
}</code>
Copier après la connexion
  1. Instancier le logger : Après avoir configuré les paramètres, créez un logger pour démarrer la journalisation.
<code class="language-python">logger = logging.getLogger('django.db.backends')</code>
Copier après la connexion
  1. Consignation des requêtes SQL : Enfin, utilisez un enregistreur pour enregistrer les requêtes SQL pendant l'exécution de l'application.
<code class="language-python">logger.debug(sql_query)</code>
Copier après la connexion

En suivant ces étapes et en incorporant les extraits de code fournis dans votre fichier settings.py, Django enregistrera toutes les requêtes SQL dans le fichier journal spécifié, fournissant un aperçu complet de toutes les interactions avec la base de données. N'oubliez pas de remplacer 'path.to.QueryHandler' par le chemin réel vers votre processeur personnalisé. Si vous n'avez pas besoin d'un processeur personnalisé, vous pouvez supprimer la partie 'query_handler' et conserver uniquement le processeur 'console'.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal