Maison  >  Article  >  développement back-end  >  Comment enregistrer de manière complète les requêtes SQL dans une application Django ?

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

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-17 17:29:02782parcourir

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

Déclaration:
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