エラーメッセージのロギング

logging

ロギングのPython標準ライブラリ

loggingモジュールは次のようなコンセプトから構成されている

・ログに保存したいメッセージ

・ランク付けのための優先順位レベルとそれに対応する関数(debug()、info()、warn()、error()、critical())

・モジュールとの主要な通信経路となるひとつ以上のロガーオブジェクト

・メッセージを端末、ファイル、データベース、その他の場所に送るハンドラ

・出力を作成するフォーマッタ

・入力に基づいて判断を下すフィルタ

ロギングの例

>>> import logging
>>> logging.debug("Looks like rain")
>>> logging.info("And hail")
>>> logging.warn("Did I hear thinder?")
<stdin>:1: DeprecationWarning: The 'warn' function is deprecated, use 'warning' instead
WARNING:root:Did I hear thinder?
>>> logging.warning("Did I hear thinder?")
WARNING:root:Did I hear thinder?
>>> logging.error("Was that lightning?")
ERROR:root:Was that lightning?
>>> logging.critical("Stop fencing and get inside!")
CRITICAL:root:Stop fencing and get inside!
>>>

ロガーオブジェクトを使ったロギングの例

>>> import logging
>>> logging.basicConfig(level='DEBUG')
>>> logger = logging.getLogger('bunyan')
>>> logger.debug('Timber!')
DEBUG:bunyan:Timber!

※ basicConfig()でデフォルトの表示レベルを指定できる。

デフォルトレベルはWARNING

もっとも低いレベルはDEBUGで、これを指定すると、すべてのレベルがログに表示される

ハンドラ(filename)を使ったロギングの例

>>> import logging
>>> logging.basicConfig(level='DEBUG', filename='blue_ox.log')
>>> logger = logging.getLogger('bunyan')
>>> logger.debug("Where's my axe?")
>>> logger.warning("I need my axe")

※ blue_ox.logにログが出力される(はず?)

ハンドラ(format)を使ったロギングの例

>>> import logging
>>> fmt = '%(asctime)s %(levelname)s %(lineno)s %(message)s'
>>> logging.basicConfig(level='DEBUG', format=fmt)
>>> logger = logging.getLogger('bunyan')
>>> logger.error("Where's my other plaid shirt?")

※ 指定した形式でログが出力される(はず?)

コメントする

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