Djangoのloggingモジュールの使用方法
設定テンプレート
下記内容を、 settings.py に記述する。
#ログ出力
LOGGING = {
'version': 1, # これを設定しないと怒られる
'formatters': { # 出力フォーマットを文字列形式で指定する
'all': { # 出力フォーマットに`all`という名前をつける
'format': '\t'.join([
"[%(levelname)s]",
"asctime:%(asctime)s",
"module:%(module)s",
"message:%(message)s",
"process:%(process)d",
"thread:%(thread)d",
])
},
},
'handlers': { # ログをどこに出すかの設定
'console': { # どこに出すかの設定をもう一つ、こちらの設定には`console`という名前
'level': 'DEBUG',
# こちらは標準出力に出してくれるクラスを指定
'class': 'logging.StreamHandler',
'formatter': 'all'
},
},
'loggers': { # どんなloggerがあるかを設定する
'apps': { # ディレクトリの指定でよいという名前のloggerを定義
'handlers': ['console'], # 先述のfile, consoleの設定で出力
'level': 'DEBUG', # 出力の
},
'django': { # djangoという名前のloggerを定義。django自身が出力に使用する。
'handlers': ['console'], # 先述のfile, consoleの設定で出力
'level': 'INFO',
},
},
}実際の使い方
使いたいモジュールの中で、ログ出力ができるようにするために、ロガーのインスタンスを作成する。
logger = logging.getLogger(__name__);実際に出力したい場所に、出力のメソッドを使用して出力をおこなう。
# デバッグとして出力したい場合に使用する。
logger.debug('test');
# 稼働の情報として出力したい場合に使用する。
logger.info('test');
# 稼働には問題ないが、想定外の情報として出力したい場合に使用する。
logger.warning('test');
# 稼働に影響のある想定外の情報として出力したい場合に使用する。
logger.error('test');
# 稼働が停止してしまう情報のとして出力したい場合に使用する。
logger.critical('test');出力を変更したい場合は、設定情報の level を変更するとよい。
記述できる level は参考から


