Comment enregistrer de manière complète les requêtes SQL dans une application Django ?

Mary-Kate Olsen
Libérer: 2024-10-17 17:29:02
original
782 Les gens l'ont consulté

How to Log SQL Queries Comprehensively in a Django Application?

Logging SQL Queries in Django

To comprehensively log all SQL queries executed by a Django application, including those generated by the admin site, follow these steps:

  1. Install a logging framework: Django utilizes Python's built-in logging framework. However, if you need more customization, consider installing a third-party logging library like Loguru or Structlog.
  2. Configure logging in settings.py: Merge the following code snippet with the LOGGING field in your settings.py file:
<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>
Copier après la connexion
  1. Set the Log level: This configuration sets the log level to DEBUG, capturing all database-related log messages. Edit the 'level' field to suit your requirements.
  2. Create a file to store logs: If you want to redirect SQL logs to a file instead of the console, add the following section to your LOGGING configuration:
<code class="python">'handlers': {
    'file': {
        'level': 'DEBUG',
        'filters': ['require_debug_true'],
        'class': 'logging.FileHandler',
        'filename': 'all-sql.log',
    }
},</code>
Copier après la connexion
  1. Restart your Django server: After making these changes, restart your Django server to apply the new logging settings.

With this configuration, all SQL queries executed by your Django application will now be logged to the specified file ('all-sql.log' in this example). This provides a convenient way to troubleshoot database-related issues or perform auditing.

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