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?")
※ 指定した形式でログが出力される(はず?)