[connfig/settings/procution.py (カスタマイズした settings.py)]
from datetime import datetime
# ログの出力先を ROOT/log 直下とする
LOGDIR = os.path.join(BASE_DIR, 'log')
LOGGING = {
# これを設定しないと怒られる
'version': 1,
# 出力フォーマットを文字列形式で指定する
'formatters': {
# 出力フォーマットに all という名前をつける
'all': {
'format': '\t'.join([
'[%(levelname)s]',
'asctime:%(asctime)s',
'asctime:%(asctime)s',
'message:%(message)s',
'process:%(process)d',
'thread:%(thread)d',
])
},
},
# ログをどこに出すかの設定
'handlers': {
# どこに出すかの設定の名前を file とする
'file': {
# DEBUG以上のログを取り扱うという意味
'level': 'DEBUG',
# ログを出力するためのクラスを指定
'class': 'logging.FileHandler',
# ファイル名を指定
'filename': os.path.join(LOGDIR, datetime.now().strftime('%Y%m%d') + '_django.log'),
'encoding':'utf-8',
# どの出力フォーマットで出すかを名前で指定
'formatter': 'all',
},
# どこに出すかの設定の名前を console とする(file に引き続き複数指定できる)
'console': {
'level': 'DEBUG',
# こちらは標準出力に出してくれるクラスを指定
'class': 'logging.StreamHandler',
'formatter': 'all'
},
},
# どんな logger があるかを設定する
'loggers': {
# commandという名前のloggerを定義
'command': {
# 先述の file, console の設定で出力
'handlers': ['file', 'console'],
'level': 'DEBUG',
}
}
}
【メモ】
level の種類
CRITICAL 50
ERROR 40
WARNING 30
INFO 20
DEBUG 10
NOTSET 0