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版
- この商品を含むブログを見る