Django ですべての SQL クエリをログに記録する
Django では、アプリケーションによって実行された SQL クエリをキャプチャすると、デバッグやパフォーマンス分析のための貴重な洞察が得られます。 、セキュリティ監視。これを実現する方法は次のとおりです。
管理サイトからのクエリを含むすべての SQL クエリをログに記録するには、settings.py ファイルの LOGGING 構成を変更します。次のスニペットを追加して既存の LOGGING フィールドとマージします:
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'], } } }
この設定では、settings.py で DEBUG フラグが True に設定されている場合、すべての SQL クエリがコンソールにルーティングされます。クエリをファイルに記録したい場合は、「console」ハンドラーを「FileHandler」に置き換えて、ログ ファイルへのパスを指定できます。
たとえば、クエリを次の名前のファイルに記録します。 all-sql.log では、次のハンドラーを使用します:
'handlers': { 'all_sql_file': { 'level': 'DEBUG', 'filters': ['require_debug_true'], 'class': 'logging.FileHandler', 'filename': 'all-sql.log', } }
新しいログ構成が確実に有効になるように、これらの変更を行った後は必ず Django サーバーを再起動してください。
以上がデバッグとパフォーマンス分析のために Django ですべての SQL クエリをキャプチャする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。