デバッグとパフォーマンス分析のために Django ですべての SQL クエリをキャプチャする方法

Patricia Arquette
リリース: 2024-10-17 17:28:30
オリジナル
503 人が閲覧しました

How to Capture All SQL Queries in Django for Debugging and Performance Analysis?

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 サイトの他の関連記事を参照してください。

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート