Pythonのlogging
モジュールは、ログ出力の表現を変更することができます。デフォルトのフォーマットは"%(levelname)s:%(name)s:%(message)s"
です。しかし、このフォーマットはカスタマイズ可能で、例えば以下のように設定することができます。
import logging
logger = logging.getLogger(__name__)
fmt = "%(asctime)s %(levelname)s %(name)s :%(message)s"
logging.basicConfig(level=logging.DEBUG, format=fmt)
logger.info("hello")
logger.info("bye")
この設定により、出力は次のようになります。
2016-10-10 19:49:50,692 INFO __main__ :hello
2016-10-10 19:49:50,693 INFO __main__ :bye
また、ログ出力の際に付加的な情報をその都度渡して出力時の情報を追加することも可能です。具体的にはextra
オプションを指定します。
import logging
import random
logger = logging.getLogger(__name__)
fmt = "%(message)10s [who=%(who)s cost=%(cost).5f]"
logging.basicConfig(level=logging.DEBUG, format=fmt)
logger.info("hello", extra={"who": "foo", "cost": random.random() * 5})
logger.info("bye", extra={"who": "foo", "cost": random.random() * 5})
この設定により、出力は次のようになります。
hello [who=foo cost=2.48451]
bye [who=foo cost=0.79263]
以上のように、Pythonのlogging
モジュールは非常に柔軟なログ出力を可能にします。これらのテクニックを活用して、より詳細で有用なログを作成しましょう。