Pythonのロゴ


Logging From Python
Preface *Jack Lee*
loggingはPythonがログを記録するためのモジュールを提供する.
このうち6種類のログレベルがある.
  • NOTSET:00は設置する.
  • DEBUG:10詳細.
  • INFO:20正常動作情報.
  • WARNING:30警告メッセージ.
  • ERROR:40エラーメッセージ.
  • CRITICAL:50致命情報.

  • Getting Start
  • は、下位レベルを設定、現在レベル以上の情報のみが表示される.
  • ログモジュールを使用する
  • ログオブジェクトを作成し、レベル
  • を設定する.
  • 処理オブジェクトを作成するレベル
  • を設定する.
  • ログフォーマット
  • を定義
  • ログオブジェクトに処理オブジェクトを追加
  • import logging
    
    
    #   log  ,     ,           .
    logger = logging.getLogger('test_log.txt')
    logger.setLevel(logging.DEBUG)
    
    #          .
    sh = logging.StreamHandler()
    sh.setLevel(logging.ERROR)
    
    #   log      .
    fh = logging.FileHandler('test_log.txt')
    fh.setLevel(logging.DEBUG)
    
    #       .
    fromatter = logging.Formatter('TIME:%(asctime)s LOG:%(levelname)s INFO:%(message)s')
    sh.setFormatter(fromatter)
    fh.setFormatter(fromatter)
    
    #        log  .
    logger.addHandler(sh)
    logger.addHandler(fh)
    
    
    if __name__ == '__main__':
        logger.debug('This is DEBUG')
        logger.error('ERROR')
        logger.info('info')
        logger.critical('critical')
    
  • Formatterログ形式
  • %(name)s:logger名前
  • %(levelno)s:ログレベルの数値形式
  • %(levelname)s:ログレベルのテキスト形式
  • %(filename)s:ログ出力を呼び出すファイル名
  • %(module)s:ログ出力を呼び出すモジュール名
  • %(asctime)s:現在時刻の時間文字列
  • %(message)s:ユーザが出力情報
  • %(funcName)s:ログ出力を呼び出す関数名
  • %(lineno)d:ログ出力関数を呼び出す文が存在するコード行
  • %(created)f:現在の時刻、UNIX標準の浮動小数点型で示す.
  • %(thread)d:スレッドID.
  • %(threadName)s:スレッド名.
  • %(process)d:プロセスID.
  • %(processName)s:プロセス名.