Pythonのloggerとloggingは、プログラムの実行ログを記録し、出力するためのモジュールです。これらのモジュールは、プログラムの動作を追跡し、問題を診断するための重要なツールです。
loggerとloggingの基本
loggerの役割は、モジュールからログメッセージを受け取り、指定された出力先(標準出力やログファイル)に、そのログメッセージを送ることです。一方、loggingは、loggerとメッセージの送り先を結びつけます。
通常、各モジュール内にloggerのインスタンスがあり、モジュール内では、そのインスタンスに対してログメッセージを送っています。
import logging
logger = logging.getLogger(__name__)
def func():
logger.info("情報")
logger.error("エラー")
上記のサンプルでは、__name__つまり、モジュール名が識別子になります。loggingは、この識別子を通じて、ログメッセージの出力先を設定します。
ログレベル
loggingにはログレベルが設定でき、setLevelによりどのログレベルまで表示を行うかを制御することが可能です。ログレベルには、DEBUG, INFO, WARNING, ERROR, CRITICALの5つがあり、ユーザーが任意に指定する必要があります。
from logging import getLogger, INFO
logger = getLogger(__name__)
logger.setLevel(INFO) # この場合、INFO以上のログが出力。つまり、DEBUG以外は出力される.
フォーマット
loggingにはフォーマットも追加でき、setFormatterによりログに日付や関数、ログレベルの情報など様々な詳細情報を出力できるようになります。
from logging import getLogger, Formatter
logger = getLogger(__name__)
format = Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
logger.setFormatter(format) # loggerにフォーマットを適用
以上がPythonのloggerとloggingの基本的な使い方と違いについての説明です。これらを理解し、適切に使用することで、プログラムの動作をより詳細に追跡し、問題を効率的に診断することができます。