\

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モジュールは非常に柔軟なログ出力を可能にします。これらのテクニックを活用して、より詳細で有用なログを作成しましょう。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です