ホームページ  >  記事  >  バックエンド開発  >  Django アプリケーションで SQL クエリを包括的に記録するにはどうすればよいですか?

Django アプリケーションで SQL クエリを包括的に記録するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-17 17:29:02784ブラウズ

How to Log SQL Queries Comprehensively in a Django Application?

Django での SQL クエリのログ記録

管理サイトによって生成されたものを含め、Django アプリケーションによって実行されたすべての SQL クエリを包括的にログに記録するには、次の手順に従います。

  1. ロギング フレームワークをインストールします: Django は、Python の組み込みロギング フレームワークを利用します。ただし、さらにカスタマイズが必要な場合は、Loguru や Structlog などのサードパーティのログ ライブラリのインストールを検討してください。
  2. settings.py でログを構成します: 次のコード スニペットを、次の LOGGING フィールドとマージします。 settings.py ファイル:
<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. ログ レベルの設定: この構成では、ログ レベルを DEBUG に設定し、データベース関連のログ メッセージをすべてキャプチャします。要件に合わせて「レベル」フィールドを編集します。
  2. ログを保存するファイルを作成します: SQL ログをコンソールではなくファイルにリダイレクトする場合は、次のセクションをLOGGING 設定:
<code class="python">'handlers': {
    'file': {
        'level': 'DEBUG',
        'filters': ['require_debug_true'],
        'class': 'logging.FileHandler',
        'filename': 'all-sql.log',
    }
},</code>
  1. Django サーバーを再起動します: これらの変更を加えた後、Django サーバーを再起動して新しいログ設定を適用します。

この構成では、Django アプリケーションによって実行されたすべての SQL クエリが指定されたファイル (この例では「all-sql.log」) に記録されるようになります。これにより、データベース関連の問題のトラブルシューティングや監査の実行に便利な方法が提供されます。

以上がDjango アプリケーションで SQL クエリを包括的に記録するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。