LoginSignup
0
1

More than 1 year has passed since last update.

Djangoのログ出力

Posted at

Djangoのログ出力はsettings.pyのLOGGINGに記述する

ターミナルとファイルにログ出力する記述の例

settings.py
LOGGING = {
    'version': 1, #ロガーのバージョン
    'disable_existing_loggers': False, #デフォルトのログを無効化するかどうか
    'formatters':{
        'standard':{
            'format' : "[%(asctime)s] %(levelname)s [%(name)s:%(lineno)s] %(message)s",
        },
    },
    'handlers': {
        'console': {
            'level': 'INFO',
            'class': 'logging.StreamHandler',
            'formatter':'standard',
        },
        'file': { 
            'level': 'INFO',
            'class': 'logging.handlers.RotatingFileHandler',
            'filename': os.path.join('logs', 'debug.log'),
            'maxBytes': 50000,
            'backupCount':2,
            'formatter':'standard',
        },
    },
    'loggers': {
        'django': {
            'handlers': ['console','file'],
            'level': 'DEBUG',
            'propagate': True,
        }
    },
}

formattersの書き方

settings.py
'formatters':{
    'standard':{ #formatter名
        'format' : "[%(asctime)s] %(levelname)s [%(name)s:%(lineno)s] %(message)s", #形式
    },
}
  • %(asctime)s:ログが出力された時刻
  • %(levelname)s:ログレベル名
  • %(name)s:ロガーの名前
  • %(lineno)s:ログを出力した行番号
  • %(message)s:ログメッセージ

handlersの書き方

settings.py
'handlers': {
    'console': {  #ターミナル上に出力
        'level': 'INFO',  #ログレベル
        'class': 'logging.StreamHandler', # ターミナルに表示する
        'formatter':'standard', #formatterを指定する
    },
    'file': {   #ファイルに出力
        'level': 'INFO',
        'class': 'logging.handlers.RotatingFileHandler',  #ログをローテーションしてファイルに出力する
        'filename': os.path.join('logs', 'debug.log'), #出力するファイルの場所
        'maxBytes': 50000, #ローテーションの基準となるファイルサイズ
        'backupCount':2, #バックアップを作成するファイルの数
        'formatter':'standard', 
    },
}

ログレベルは、CRITICAL、ERROR、WARNING、INFO、DEBUGの順で重大
時間でローテーションさせるTimedRotatingFileHandlerなどもある

loggersの書き方

settigs.py
'loggers': {
    'django': {
        'handlers': ['console','file'], #handlersを指定する
        'level': 'DEBUG', #ログレベル
        'propagate': True,  #親ロガーへ伝搬するかどうか
    }
}

参考

https://docs.python.org/ja/3/library/logging.html
https://qiita.com/okoppe8/items/3e8ab77c5801a7d21991

0
1
0

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
  3. You can use dark theme
What you can do with signing up
0
1