Pythonのlogging
モジュールは、アプリケーションやライブラリのための柔軟なエラーログ記録 (logging) システムを実装するための関数やクラスを提供します。この記事では、特にlevelname
という属性に焦点を当て、その活用方法を解説します。
ログレベルとは
logging
モジュールでは、ログレベルが設定でき、setLevel
メソッドによりどのログレベルまで表示を行うかを制御することが可能です。ログレベルには、DEBUG
, INFO
, WARNING
, ERROR
, CRITICAL
の5つがあり、ユーザーが任意に指定する必要があります。
from logging import getLogger, INFO
logger = getLogger(__name__)
logger.setLevel(INFO) # この場合、INFO以上のログが出力。つまり、DEBUG以外は出力される
レベル名(levelname)の活用
levelname
はログのレベルを表します(e.g. DEBUG
, INFO
, ERROR
,…)。ログメッセージのフォーマットにlevelname
を含めることで、各ログメッセージがどのレベルで出力されたのかを簡単に確認することができます。
from logging import getLogger, Formatter, StreamHandler, INFO
logger = getLogger(__name__)
logger.setLevel(INFO)
# StreamHandlerの設定
ch = StreamHandler()
ch.setLevel(INFO)
ch_formatter = Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
ch.setFormatter(ch_formatter)
logger.addHandler(ch) # StreamHandlerの追加
logger.info('this is format')
このコードを実行すると、以下のような出力が得られます。
2021-01-13 16:40:23 - __main__ - INFO - this is format
このように、levelname
を活用することで、ログメッセージがどのレベルで出力されたのかを一目で確認することができます。これは、ログを解析する際に非常に便利です。
以上、Pythonのlogging
モジュールにおけるlevelname
の活用方法について解説しました。この知識を活用して、より効率的なログ管理を行いましょう。.