Maison > base de données > tutoriel mysql > Comment puis-je enregistrer toutes les requêtes SQL Django, y compris les requêtes d'administrateur, pour le débogage et la surveillance ?

Comment puis-je enregistrer toutes les requêtes SQL Django, y compris les requêtes d'administrateur, pour le débogage et la surveillance ?

Linda Hamilton
Libérer: 2025-01-15 21:14:52
original
129 Les gens l'ont consulté

How Can I Log All Django SQL Queries, Including Admin Queries, for Debugging and Monitoring?

Interception et journalisation de toutes les requêtes SQL Django

Question :

La journalisation de toutes les requêtes SQL exécutées par une application Django est précieuse pour le débogage, l'analyse des performances et la surveillance de la sécurité. Comment y parvenir, y compris chaque instruction SQL générée par l'interface d'administration de Django ?

Solution :

Pour enregistrer toutes les requêtes SQL, améliorez la configuration LOGGING dans settings.py avec la directive suivante :

<code>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

Instructions :

Cette configuration ajoute un nouveau gestionnaire appelé "console" qui imprime les messages de journal sur la console, mais uniquement lorsque le mode DEBUG est activé. Le journaliseur 'django.db.backends' est configuré pour enregistrer toutes les requêtes SQL au niveau DEBUG dans ce gestionnaire.

Utilisation :

Pour écrire toutes les requêtes SQL dans un fichier au lieu de la console, modifiez la section "handlers" comme suit :

<code>'handlers': {
    'file': {
        'level': 'DEBUG',
        'filters': ['require_debug_true'],
        'class': 'logging.FileHandler',
        'filename': '/path/to/all-sql.log',
    }
}</code>
Copier après la connexion

Cela redirigera tous les journaux de débogage (y compris les requêtes SQL) vers 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