1. ホーム
  2. django

[解決済み] すべてのSQLクエリをログに記録

2022-05-13 14:57:05

質問

私の django アプリケーションが実行したすべての SQL クエリを記録するにはどうすればよいですか?

私は、管理サイトからのSQLを含むすべてのログを取りたいと思っています。私は見た この質問 FAQの回答 を追加しましたが、まだ、どこに

from django.db import connection
connection.queries

を使えば、全てを1つのファイルに記録することができますか?

そこで質問ですが、すべての SQL 文をログに記録するファイル (たとえば all-sql.log) を作成するには、どうすればよいのでしょうか。

どのように解決するのですか?

多分、次のものをチェックしてください。 https://github.com/django-debug-toolbar/django-debug-toolbar

これは、あるページで生成されたすべてのクエリを見ることができます。 また、それらが発生する場所などのスタックトレースも見ることができます。

EDIT: すべてのSQLクエリをファイルなどに記録するには、いくつかのミドルウェアを作成する必要があります。 ミドルウェアはすべてのリクエストで実行されます。 この種のもののために、いくつかの Django のスニペットがあります。

これらはターミナルへの印刷に関係していますが、pythonのロギングライブラリを使用するようにそれらを適応させるのは難しいことではありません。