概要
Python3 標準の logging パッケージを使ったロギング方法を紹介します
いつも忘れるのでメモ
環境
- macOS 10.13.5
- Python 3.6.5
単純なロギング
logging だけを使っています
basicConfig
という設定用のメソッドを使ってフォーマットなどを設定することができます
import logging
logging.basicConfig(
level = logging.DEBUG,
format = "[%(asctime)s] %(levelname)s [%(name)s.%(funcName)s:%(lineno)d] %(message)s"
)
logging.debug("debug")
logging.info("info")
logging.warn("warn")
ただこれだと pip でインストールしたパッケージのログなども表示されてしまいます
StreamHandler を使ったロギング
getLogger + StreamHandler を使うと標準出力にスクリプト内のログのみを出力することができるようになります
フォーマットの設定は Formatter
を使ってフォーマットを生成し StreamHandler
の setFormatter
を使って設定します
from logging import getLogger,DEBUG,StreamHandler,Formatter
logger = getLogger(__name__)
logger.setLevel(DEBUG)
formatter = Formatter("[%(asctime)s] %(levelname)s [%(name)s.%(funcName)s:%(lineno)d] %(message)s")
sh = StreamHandler()
sh.setFormatter(formatter)
logger.addHandler(sh)
logger.debug("debug")
logger.info("info")
logger.warn("warn")
こちらを使うほうが良いと思います
最後に
どちらも Python3 標準の logging パッケージを使っているのでそのまま使えます
少し長くて複雑ですが下を使うことをオススメします
0 件のコメント:
コメントを投稿