Python Logging モジュール
logging モジュールを使うと、debug、info、warning、error、exception のメッセージを一貫した方法で記録できます。
import logging
メッセージに異なる重要度がある場合や、あとでファイルに出力する可能性がある場合は、print() ではなく logging を使います。
基本設定
basicConfig はデフォルトのロガーを設定します。
import logging
logging.basicConfig(level=logging.INFO)
logging.info('Application started')
logging.warning('Low disk space')
INFO:root:Application started
WARNING:root:Low disk space
設定したレベルより下のメッセージは無視されます。
import logging
logging.basicConfig(level=logging.WARNING)
logging.info('Hidden message')
logging.warning('Visible message')
WARNING:root:Visible message
名前付きロガーを作成する
名前付きロガーは大きなアプリケーションで役立ちます。
import logging
logger = logging.getLogger('app.users')
logger.setLevel(logging.INFO)
print(logger.name)
app.users
メッセージを書式設定する
出力形式はカスタマイズできます。
import logging
logging.basicConfig(
level=logging.INFO,
format='%(levelname)s:%(name)s:%(message)s',
)
logger = logging.getLogger('app')
logger.info('Ready')
INFO:app:Ready
例外を記録する
logger.exception は except ブロック内で traceback を自動的に記録します。
import logging
logging.basicConfig(level=logging.ERROR)
logger = logging.getLogger(__name__)
try:
1 / 0
except ZeroDivisionError:
logger.exception('Calculation failed')
ERROR:__main__:Calculation failed
Traceback (most recent call last):
...
ZeroDivisionError: division by zero