Maison > base de données > tutoriel mysql > Comment enregistrer efficacement les requêtes SQL dans Django ?

Comment enregistrer efficacement les requêtes SQL dans Django ?

Linda Hamilton
Libérer: 2025-01-15 21:29:44
original
812 Les gens l'ont consulté

How to Effectively Log SQL Queries in Django?

Explication détaillée de la journalisation des requêtes SQL Django

Django est un framework Web Python populaire pour créer des applications basées sur des bases de données. Pour garantir des performances optimales et résoudre les problèmes de base de données, il est souvent nécessaire de consigner toutes les requêtes SQL exécutées par une application. Ce guide vous expliquera étape par étape comment implémenter cette journalisation dans Django.

Code de journalisation des requêtes de localisation

Pour enregistrer les requêtes SQL, vous devez éditer le fichier settings.py de votre projet Django. Dans ce fichier, recherchez le dictionnaire LOGGING et modifiez-le selon l'extrait de code suivant :

<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',
        }
    },
    'loggers': {
        'django.db.backends': {
            'level': 'DEBUG',
            'handlers': ['console'],
        }
    }
}</code>
Copier après la connexion

Configuration de journalisation intégrée

Après avoir fusionné l'extrait de code fourni avec le dictionnaire LOGGING, Django enregistrera automatiquement toutes les requêtes SQL sur la console. Pour rediriger les requêtes vers un fichier séparé (par exemple all-sql.log), vous devez ajouter un gestionnaire de fichiers à la section handlers. Voici un exemple de configuration modifiée :

<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',
        },
        'file': {
            'level': 'DEBUG',
            'class': 'logging.FileHandler',
            'filename': '/path/to/all-sql.log', # 请替换为您的日志文件路径
        }
    },
    'loggers': {
        'django.db.backends': {
            'level': 'DEBUG',
            'handlers': ['file'],
        }
    }
}</code>
Copier après la connexion

N'oubliez pas de remplacer /path/to/all-sql.log par le chemin réel de votre fichier journal. Une fois la configuration terminée, toutes les requêtes de base de données seront enregistrées dans le fichier spécifié.

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