Djangoを使ってWebサービスを作っているときに、ロガーを導入したときの備忘録。
環境は、Django1.10.1, Python2.7。
Qiitaにsakamossanさんのすてきな記事があったので、ほぼ流用
setting.pyにloggerの設定を書く
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': { # ログをどこに出すかの設定
'file': { # どこに出すかの設定に名前をつける `file`という名前をつけている
'level': 'DEBUG', # DEBUG以上のログを取り扱うという意味
'class': 'logging.handlers.RotatingFileHandler', # ログを出力するためのクラスを指定(サイズローテーション
'filename': os.path.join(BASE_DIR, 'django.log'), # どこに出すか
'formatter': 'all', # どの出力フォーマットで出すかを名前で指定
'maxBytes': 1024 * 1024 * 10, # 10GBでローテーション
'backupCount': 10, # バックアップファイルは10ファイルまで
},
'console': { # どこに出すかの設定をもう一つ、こちらの設定には`console`という名前
'level': 'DEBUG',
# こちらは標準出力に出してくれるクラスを指定
'class': 'logging.StreamHandler',
'formatter': 'all'
},
},
'loggers': { # どんなloggerがあるかを設定する
'command': { # commandという名前のloggerを定義
'handlers': ['file', 'console'], # 先述のfile, consoleの設定で出力
'level': 'DEBUG',
},
},
}
ロガーを使う
ロガーは、以下の感じで使う。
logger = logging.getLogger('command') logger.info("表示するメッセージ")
以上!!
参考になる書籍

- 作者: 関根裕紀,新井正貴
- 出版社/メーカー: シーアンドアール研究所
- 発売日: 2019/07/01
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る

- 作者: 掌田津耶乃
- 出版社/メーカー: 秀和システム
- 発売日: 2018/06/09
- メディア: 単行本
- この商品を含むブログを見る

- 作者: 横瀬明仁
- 出版社/メーカー: NextPublishing Authors Press
- 発売日: 2018/08/26
- メディア: オンデマンド (ペーパーバック)
- この商品を含むブログを見る

- 作者: 横瀬明仁
- 発売日: 2018/12/08
- メディア: Kindle版
- この商品を含むブログを見る