4
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

posted at

DjangoでModel経由で実行したSQLをログに出力する

パフォーマンスチューニングって重要ですよね。

Djangoを使用していて、あれ、このAPI重いなとか負荷がかかってるな?と思ってSQLが原因かなーと、思ったのであれば、実行SQLとその実行にかかった時間をログに出してみましょう。
まずはともかく、ログに出さないことには何も調べようがないですしね:sob:

ログに出す!

特に新規実装とかは不要です!
やることは簡単、設定値を変更するだけ:muscle:

settings.py
LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'handlers': {
        'console': {
            'level': 'DEBUG',
            'class': 'logging.StreamHandler',
        },
    },
    'loggers': {
        'django.db.backends': {
            'handlers': ['console'],
            'level': 'DEBUG',
        },
    },
}

これを追加してあげるだけです!
今回の場合だと、sqlが実行される度に、handlersで設定した先に対してログが出力されます!
便利:grin:

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
4
Help us understand the problem. What are the problem?