pythonの中のcolorlogライブラリの使用詳細


一.説明
cololorlog.coolordFormaterはPython logingモジュールのフォーマットで、端末でログを出力するための色です。
二.取り付け

pip install colorlog
三.使い方

import colorlog

handler = colorlog.StreamHandler()
handler.setFormatter(colorlog.ColoredFormatter(
 '%(log_color)s%(levelname)s:%(name)s:%(message)s'))

logger = colorlog.getLogger('example')
logger.addHandler(handler)
Colored Formater類はいくつかのパラメータを持っています。
  • format:ログを出力するためのフォーマット文字列(必須)
  • datefmt:ベースクラスに渡す任意の日付フォーマット。loging.Formater
  • に会います。
  • reset:暗黙的に、出力が終了していない限り、色リセットコードを追加します。デフォルトはTrue
  • です。
  • log_colors:レコードレベル名から色名へのマッピング。colorlog.default_でもいいです。ロゴcolorsまたは以下の例では、デフォルト値
  • が見つかります。
  • secondary yiロゴcolors:色の名前はlog_になります。colorsスタイルのマッピングは、書式設定された文字列で他の色を使用することができます。以下の例を参照してください。
  • style:python 3.2以上で利用できます。loging.Formater
  • に会います。
    書式設定文字列にパラメータを追加し、ログレベルに応じて色変換コードを選択できます。
  • log_カラー:ログレベルに関連する色を返します。
  • _ロゴカラー:フォームに補助色が設定されている場合は、ログレベルに応じて別の色に戻ります。ロゴcolors)
  • ログレベルの色を設定する場合は、コンマを使って複数のトランスコードを接続することができます。ただし、直接書式文字列では使用できません。例えば、black、bg_ホワイトは白い背景にトランスコードを使って黒いテキストを表します。
    以下は文字列の書式設定に使用できます。
  • {color}fg_{u}bg_{u}カラー::前景色と背景色
  • bold、bold_{u}カラー、fg_bold{u}bg_bold{u}カラー:太字/明るい色
  • reset:前景色と背景色を含むすべてのフォーマットをクリアする
  • 使用できる色の名前はblack,red,green,yellow,blue,purple,cyan and whiteです。
    四.実例
    1.Colored Formaterの使い方
    以下のコードは各パラメータのデフォルト値を使って、loging設定用のColoredFormaterを作成します。
    
    from colorlog import ColoredFormatter
    
    formatter = ColoredFormatter(
     "%(log_color)s%(levelname)-8s%(reset)s %(blue)s%(message)s",
     datefmt=None,
     reset=True,
     log_colors={
      'DEBUG': 'cyan',
      'INFO':  'green',
      'WARNING': 'yellow',
      'ERROR': 'red',
      'CRITICAL': 'red,bg_white',
     },
     secondary_log_colors={},
     style='%'
    )
    2.secondary_ロゴcolorsの使用
    補助ログの色はログレベルに応じて複数の色を選択する方法です。secondaryロゴColorsの各キーには、フォーマットされた文字列で使用できる属性が追加されています。ロゴカラー)とロゴcolorsパラメータフォーマットと同じ対応値
    以下の例ではデフォルトログの色を使ってレベル名を強調表示し、ERRORとCRITICALレベルのログ情報を赤色で強調表示します。
    
    from colorlog import ColoredFormatter
    
    formatter = ColoredFormatter(
     "%(log_color)s%(levelname)-8s%(reset)s %(message_log_color)s%(message)s",
     secondary_log_colors={
      'message': {
       'ERROR': 'red',
       'CRITICAL': 'red'
      }
     }
    )
    3.dictConfigの使用
    
    logging.config.dictConfig({
     'formatters': {
      'colored': {
       '()': 'colorlog.ColoredFormatter',
       'format': "%(log_color)s%(levelname)-8s%(reset)s %(blue)s%(message)s"
      }
     },
    
     ...
    })
    一つの完備している例はtests/test_を参考にします。colorlog.py
    4.fileConfigの使用
    
    [loggers]
    keys=root
    
    [logger_root]
    handlers=stream
    level=DEBUG
    
    [formatters]
    keys=color
    
    [formatter_color]
    class=colorlog.ColoredFormatter
    format=%(log_color)s%(levelname)s:%(name)s:%(message)s:test_config.ini
    datefmt=%H:%M:%S
    
    [handlers]
    keys=stream
    
    [handler_stream]
    class=StreamHandler
    formatter=color
    args=()
    カラーフォーマットが設定されているどのチャネルでも、これらのパラメータ構造のColoredFormaterの例を使用することができます。
    完全な例を参考にしてください。config.ini
    5.カスタムログレベルの使用
    ColoredFormaterはloging.addLevelNameを使ってカスタマイズしたログレベルを追加します。
    
    import logging, colorlog
    TRACE = 5
    logging.addLevelName(TRACE, 'TRACE')
    formatter = colorlog.ColoredFormatter(log_colors={'TRACE': 'yellow'})
    handler = logging.StreamHandler()
    handler.setFormatter(formatter)
    logger = logging.getLogger('example')
    logger.addHandler(handler)
    logger.setLevel('TRACE')
    logger.log(TRACE, 'a message using a custom level')
    以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。