気ままなタンス*プログラミングなどのノートブック

プログラミングやRPGツクール、DTM、VOCALOIDについてのんびり書きます。

【Django】ログ出力について

LOGGINGの設定をする

  • settings.pyに対して、LOGGINGを記載する
    • シンプルにやる場合は、フォーマッタ、ハンドラ、ロガーを指定すれば良さげ
    • フォーマッタ
      • ログの出力形式を指定
    • ハンドラ
      • 個々のメッセージに何が起こるか設定する。ファイル出力か、コンソール出力か、等
    • ロガー
      • ロギングのエントリポイント
      • どのフォーマッタ、ハンドラを使うか指定
      • ログレベル(DEBUG、ERROR等)を指定
# settings.py
LOGGING = {
    'version': 1,
    # フォーマッタ
    'formatters': {
        # 好きな名前をつけられる
        'verbose': {
            'format': '%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s'
        },
        'simple': {
            'format': '%(levelname)s %(message)s'
        },
    },
    'handlers': {
        # 好きな名前をつけられる
        'file': {
            'class': 'logging.FileHandler',
            'filename': '/var/log/django.log',
            'formatter': 'verbose',
        },
    },
    'loggers': {
        'django.request': {
            'handlers': ['file'],
            'level': 'DEBUG',
            'propagate': False,
        }
    },
    
}
  • 以下のような形でログ出力が可能
import logging

logger = logging.getLogger('django.request')
logger.debug('hoge')