\

Pythonのloggingモジュールは、アプリケーションのデバッグやエラー追跡に非常に有用なツールです。この記事では、特に日時を使った詳細なログ出力に焦点を当てています。

ログ出力の基本

Pythonのloggingモジュールでは、ログの出力形式を変更することで、ログの表現を自由に変えることができます。以下に基本的な使用例を示します。

import logging

logger = logging.getLogger(__name__)
logging.basicConfig(level=logging.DEBUG)

logger.info("hello")
logger.info("bye")

このコードを実行すると、以下のような出力が得られます。

INFO:__main__:hello
INFO:__main__:bye

ログ出力のフォーマットを変更する

ログ出力のフォーマットを変更するには、basicConfigformatオプションを付けます。以下に例を示します。

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

コメントを残す

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