ホームページ >データベース >mysql チュートリアル >デバッグとモニタリングのために、管理クエリを含むすべての Django SQL クエリをログに記録するにはどうすればよいですか?
すべての Django SQL クエリのインターセプトとロギング
質問:
Django アプリケーションによって実行されるすべての SQL クエリのログは、デバッグ、パフォーマンス分析、セキュリティ監視に役立ちます。 Django 管理インターフェイスによって生成されるすべての SQL ステートメントを含めて、これをどのように達成できるでしょうか?
解決策:
すべての SQL クエリをログに記録するには、次のディレクティブを使用して settings.py の LOGGING 設定を拡張します:
<code>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>
手順:
この構成では、ログ メッセージをコンソールに出力する「console」という新しいハンドラーが追加されますが、これは DEBUG モードが有効な場合のみです。 「django.db.backends」ロガーは、すべての SQL クエリを DEBUG レベルでこのハンドラーに記録するように構成されています。
使用法:
すべての SQL クエリをコンソールではなくファイルに書き込むには、「handlers」セクションを次のように変更します。
<code>'handlers': { 'file': { 'level': 'DEBUG', 'filters': ['require_debug_true'], 'class': 'logging.FileHandler', 'filename': '/path/to/all-sql.log', } }</code>
これにより、すべてのデバッグ ログ (SQL クエリを含む) が指定されたファイルにリダイレクトされます。
以上がデバッグとモニタリングのために、管理クエリを含むすべての Django SQL クエリをログに記録するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。