Django アプリケーションによって実行されるすべての SQL クエリをキャプチャすることは、デバッグ、パフォーマンス分析、セキュリティ監査にとって重要です。これを実現するための包括的なガイドは次のとおりです:
settings.py ファイルを変更し、次のスニペットを LOGGING フィールドにマージします:
<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>
この構成は、すべての Django データベース バックエンド メッセージ (SQL クエリ) をルーティングします。 ) をコンソール ハンドラーに渡します。デフォルトでは、これは DEBUG モードが有効な場合にのみ表示されます。
all-sql.log という名前のファイル内のすべての SQL ステートメントをキャプチャするには、次の構成を追加できます:
<code class="python">HANDLERS = { ... # existing handlers 'file': { 'level': 'DEBUG', 'class': 'logging.FileHandler', 'filename': '/path/to/all-sql.log', # adjust file path as needed } }</code>
最後に、新しいファイル ハンドラーをロガー設定に追加します。
<code class="python">LOGGERS = { ... # existing loggers 'django.db.backends': { 'level': 'DEBUG', 'handlers': ['console', 'file'], # add 'file' handler } }</code>
これらの変更により、すべての SQL クエリがコンソール (DEBUG が有効な場合) と指定されたファイルの両方に記録されます。ニーズに合わせて filename パラメーターのファイル パスを調整します。 Django アプリケーションを再起動して、ログ機能を有効にします。
以上がDjango で包括的な SQL クエリ ログを実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。