LoginSignup
6

More than 3 years have passed since last update.

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:

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
6